home *** CD-ROM | disk | FTP | other *** search
/ Experimental BBS Explossion 3 / Experimental BBS Explossion III.iso / games / nhak_src.zip / MONST.C < prev    next >
C/C++ Source or Header  |  1993-03-16  |  87KB  |  1,688 lines

  1. /*    SCCS Id: @(#)monst.c    3.0    89/11/21
  2. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  3. /* NetHack may be freely redistributed.  See license for details. */
  4.  
  5. #include "config.h"
  6. #include "permonst.h"
  7. #include "monsym.h"
  8. #include "eshk.h"
  9. #include "vault.h"
  10. #include "epri.h"
  11.  
  12. #define NO_ATTK     { 0, 0, 0, 0 }
  13.  
  14. #ifdef C
  15. #undef C
  16. #endif
  17. #ifdef TEXTCOLOR
  18. #include "color.h"
  19. #define C(color)    color
  20. #define HI_DOMESTIC    WHITE        /* use for player + friendlies */
  21. #define HI_LORD     MAGENTA
  22. #else
  23. #define C(color)
  24. #endif
  25.  
  26. #ifndef SPLITMON_2
  27. struct permonst NEARDATA playermon = {        /* used by weapons bonus code */
  28.     "player", S_HUMAN, 1, 10, 10, 0, 0, G_GENO | G_NOGEN,
  29.     { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  30.     45, 400, PL_NSIZ, MS_SILENT, MZ_HUMAN,
  31.     M1_NEEDPICK | M1_HUMANOID | M1_COLLECT,
  32.     M2_HUMAN | M2_STRONG, C(HI_DOMESTIC)
  33. },    NEARDATA *uasmon = &playermon;
  34. #endif /* SPLITMON_2 */
  35.  
  36. /*
  37.  *    Rule #1:    monsters of a given class are contiguous in the
  38.  *            mons[] array.
  39.  *
  40.  *    Rule #2:    monsters of a given class are presented in ascending
  41.  *            order of strength.
  42.  *
  43.  *    Rule #3:    monster frequency is included in the geno mask;
  44.  *            the frequency can be from 0 to 7.  0's will also
  45.  *            be skipped during generation.
  46.  *
  47.  * Guidelines for color assignment:
  48.  *
  49.  *    * Use the same color for all `growth stages' of a monster (ex.
  50.  *      little dog/big dog, baby naga/full-grown naga.
  51.  *
  52.  *    * Use colors given in names wherever possible. If the class has `real'
  53.  *      members with strong color associations, use those.
  54.  *
  55.  *    * Favor `cool' colors for cold-resistent monsters, `warm' ones for
  56.  *      fire-resistent ones.
  57.  *
  58.  *    * Try to reserve purple (magenta) for powerful `ruler' monsters (queen
  59.  *      bee, kobold lord, &c.).
  60.  *
  61.  *    * Subject to all these constraints, try to use color to make as many
  62.  *      distinctions as the / command (that is, within a monster letter
  63.  *      distinct names should map to distinct colors).
  64.  *
  65.  * The aim in assigning colors is to be consistent enough so a player can
  66.  * become `intuitive' about them, deducing some or all of these rules
  67.  * unconsciously. Use your common sense.
  68.  */
  69.  
  70. #if defined(SMALLDATA) && !defined(MAKEDEFS_C)
  71.         /* if it's for SMALLDATA, say so, right? (KL) */
  72. struct permonst *mons;       /* for SMALLDATA - mons data stored in NetHack app */
  73. #else
  74. #ifndef SPLITMON_2
  75. struct permonst NEARDATA mons[] = {
  76. /*    ants    */
  77.     { "giant ant",    S_ANT, 2, 18, 3, 0, 0, (G_GENO | G_SGROUP | 3),
  78.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  79.       1, 10, 0, MS_SILENT, MZ_TINY, M1_ANIMAL | M1_NOHANDS,
  80.       M2_HOSTILE | M2_CARNIVORE | M2_EGGS, C(BROWN) },
  81.     { "soldier ant", S_ANT, 3, 18, 3, 0, 0, (G_GENO | G_SGROUP | 2),
  82.       { { AT_BITE, AD_PHYS, 2, 4 }, { AT_STNG, AD_DRST, 3, 4 },
  83.       NO_ATTK, NO_ATTK, NO_ATTK }, 2, 20, 0, MS_SILENT, MZ_TINY,
  84.       M1_ANIMAL | M1_NOHANDS | M1_POIS | M1_POIS_RES,
  85.       M2_HOSTILE | M2_CARNIVORE | M2_EGGS, C(BLUE) },
  86.     { "fire ant", S_ANT, 3, 18, 3, 10, 0, (G_GENO | G_SGROUP | 1),
  87.       { { AT_BITE, AD_FIRE, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  88.       3, 30, 0, MS_SILENT, MZ_TINY, M1_ANIMAL | M1_NOHANDS | M1_FIRE_RES,
  89.       M2_HOSTILE | M2_CARNIVORE | M2_EGGS, C(RED) },
  90.     { "giant beetle", S_ANT, 5, 6, 4, 0, 0, (G_GENO | 3),
  91.       { { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  92.       1, 10, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_NOHANDS | M1_POIS |
  93.       M1_POIS_RES, M2_HOSTILE | M2_CARNIVORE, C(BLACK) },
  94.     { "killer bee", S_ANT, 1, 18, -1, 0, 0, (G_GENO | G_LGROUP | 2),
  95.       { { AT_STNG, AD_DRST, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  96.       1, 10, 0, MS_BUZZ, MZ_TINY, M1_ANIMAL | M1_FLY | M1_NOHANDS |
  97.       M1_POIS | M1_POIS_RES, M2_HOSTILE, C(YELLOW) },
  98.     { "queen bee", S_ANT, 9, 24, -4, 0, 0, (G_GENO | G_NOGEN),
  99.       { { AT_STNG, AD_DRST, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  100.       1, 10, 0, MS_BUZZ, MZ_TINY, M1_ANIMAL | M1_FLY | M1_NOHANDS |
  101.       M1_POIS | M1_POIS_RES, M2_HOSTILE | M2_PRINCE, C(HI_LORD) },
  102. /*    blobs    */
  103.     { "acid blob", S_BLOB, 1, 3, 8, 0, 0, (G_GENO | 2),
  104.       { { AT_NONE, AD_ACID, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  105.       3, 30, 0, MS_SILENT, MZ_TINY,
  106.       M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_SLEE_RES | M1_STON_RES |
  107.       M1_ACID, M2_WANDER, C(GREEN) },
  108.     { "quivering blob", S_BLOB, 5, 1, 8, 0, 0, (G_GENO | 2),
  109.       { { AT_TUCH, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  110.       20, 200, 0, MS_SILENT, MZ_SMALL,
  111.       M1_NOEYES | M1_NOLIMBS | M1_POIS_RES,
  112.       M2_WANDER | M2_HOSTILE, C(WHITE) },
  113.     { "gelatinous cube", S_BLOB, 6, 6, 8, 0, 0, (G_GENO | 2),
  114.       { { AT_TUCH, AD_PLYS, 2, 4 }, { AT_NONE, AD_PLYS, 1, 4 },
  115.         NO_ATTK, NO_ATTK, NO_ATTK },
  116.       30, 300, 0, MS_SILENT, MZ_LARGE,
  117.       M1_NOEYES | M1_NOLIMBS | M1_FIRE_RES | M1_COLD_RES | M1_ELEC_RES |
  118.       M1_SLEE_RES, M2_WANDER | M2_HOSTILE | M2_OMNIVORE, C(CYAN) },
  119. /*    cockatrice    */
  120.     { "cockatrice", S_COCKATRICE, 5, 6, 6, 30, 0, (G_GENO | 5),
  121.       { { AT_BITE, AD_PHYS, 1, 3 }, { AT_TUCH, AD_STON, 0, 0 },
  122.         { AT_NONE, AD_STON, 0, 0 }, NO_ATTK, NO_ATTK },
  123.       3, 30, 0, MS_HISS, MZ_SMALL,
  124.       M1_ANIMAL | M1_NOHANDS | M1_POIS_RES | M1_STON_RES,
  125.       M2_HOSTILE | M2_EGGS, C(YELLOW) },
  126. /*    dog    */
  127.     { "little dog", S_DOG, 2, 18, 6, 0, 0, (G_GENO | 1),
  128.       { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  129.       15, 150, 0, MS_BARK, MZ_SMALL,
  130.       M1_ANIMAL | M1_NOHANDS, M2_CARNIVORE | M2_DOMESTIC, C(HI_DOMESTIC) },
  131.     { "dog", S_DOG, 4, 16, 5, 0, 0, (G_GENO | 1),
  132.       { { AT_BITE, AD_PHYS, 1 ,6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  133.       20, 200, 0, MS_BARK, MZ_MEDIUM,
  134.       M1_ANIMAL | M1_NOHANDS, M2_CARNIVORE | M2_DOMESTIC, C(HI_DOMESTIC) },
  135.     { "large dog", S_DOG, 6, 15, 4, 0, 0, (G_GENO | 1),
  136.       { { AT_BITE, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  137.       25, 250, 0, MS_BARK, MZ_MEDIUM,
  138.       M1_ANIMAL | M1_NOHANDS, M2_STRONG | M2_CARNIVORE | M2_DOMESTIC,
  139.       C(HI_DOMESTIC) },
  140.     { "jackal", S_DOG, 0, 12, 7, 0, 0, (G_GENO | G_SGROUP | 3),
  141.       { { AT_BITE, AD_PHYS, 1, 2 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  142.       25, 250, 0, MS_BARK, MZ_SMALL,
  143.       M1_ANIMAL | M1_NOHANDS, M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  144.     { "jackalwere", S_DOG, 2, 12, 7, 10, -7, G_NOGEN | G_NOCORPSE,
  145.       { { AT_BITE, AD_WERE, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  146.       25, 250, 0, MS_BARK, MZ_SMALL,
  147.       M1_NOPOLY | M1_NOHANDS | M1_POIS | M1_REGEN,
  148.       M2_WERE | M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  149.     { "wolf", S_DOG, 5, 12, 4, 0, 0, (G_GENO | G_SGROUP | 2),
  150.       { { AT_BITE, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  151.       25, 250, 0, MS_BARK, MZ_SMALL,
  152.       M1_ANIMAL | M1_NOHANDS, M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  153.     { "wolfwere", S_DOG, 5, 12, 4, 20, -7, G_NOGEN | G_NOCORPSE,
  154.       { { AT_BITE, AD_WERE, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  155.       25, 250, 0, MS_BARK, MZ_MEDIUM,
  156.       M1_NOPOLY | M1_NOHANDS | M1_POIS | M1_REGEN,
  157.       M2_WERE | M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  158.     { "winter wolf", S_DOG, 7, 12, 4, 0, 0, (G_GENO | 1),
  159.       { { AT_BITE, AD_PHYS, 2, 6 }, { AT_BREA, AD_COLD, 2, 6 },
  160.       NO_ATTK, NO_ATTK, NO_ATTK, },
  161.       30, 300, 0, MS_BARK, MZ_LARGE, M1_ANIMAL | M1_NOHANDS | M1_COLD_RES,
  162.       M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(CYAN) },
  163.     { "warg", S_DOG, 7, 12, 4, 0, -5, (G_GENO | G_SGROUP | 2),
  164.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  165.       35, 350, 0, MS_BARK, MZ_MEDIUM, M1_ANIMAL | M1_NOHANDS,
  166.       M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  167.     { "hell hound pup", S_DOG, 7, 12, 4, 20, -5,
  168.       (G_HELL | G_GENO | G_SGROUP | 1),
  169.       { { AT_BITE, AD_PHYS, 2, 6 }, { AT_BREA, AD_FIRE, 2, 6 },
  170.       NO_ATTK, NO_ATTK, NO_ATTK },
  171.       20, 200, 0, MS_BARK, MZ_SMALL, M1_ANIMAL | M1_NOHANDS | M1_FIRE_RES,
  172.       M2_HOSTILE | M2_CARNIVORE, C(RED) },
  173.     { "hell hound", S_DOG, 12, 14, 2, 20, 0, (G_HELL | G_GENO | 1),
  174.       { { AT_BITE, AD_PHYS, 3, 6 }, { AT_BREA, AD_FIRE, 3, 6 },
  175.       NO_ATTK, NO_ATTK, NO_ATTK, },
  176.       30, 300, 0, MS_BARK, MZ_MEDIUM, M1_ANIMAL | M1_NOHANDS | M1_FIRE_RES,
  177.       M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(RED) },
  178. #ifdef CHARON
  179.     { "Cerberus", S_DOG, 12, 10, 2, 20, -7, (G_HELL | G_UNIQ | 1),
  180.       { { AT_BITE, AD_PHYS, 3, 6 }, { AT_BITE, AD_PHYS, 3, 6 },
  181.       { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK },
  182.       50, 350, 0, MS_BARK, MZ_LARGE,
  183.       M1_NOPOLY | M1_ANIMAL | M1_NOHANDS | M1_FIRE_RES,
  184.       M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_PNAME, C(RED) },
  185. #endif
  186. /*    eyes    */
  187.     { "floating eye", S_EYE, 2, 1, 9, 10, 0, (G_GENO | 5),
  188.       { { AT_NONE, AD_PLYS, 0, 70 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  189.       1, 10, 0, MS_SILENT, MZ_SMALL,
  190.       M1_FLY | M1_NOLIMBS, M2_HOSTILE, C(BLUE) },
  191.     { "freezing sphere", S_EYE, 6, 13, 4, 0, 0, (G_GENO | 2),
  192.       { { AT_EXPL, AD_COLD, 4, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  193.       1, 10, 0, MS_SILENT, MZ_SMALL,
  194.       M1_FLY | M1_NOLIMBS | M1_COLD_RES, M2_HOSTILE, C(WHITE) },
  195. /*    felines     */
  196.     { "kitten", S_FELINE, 2, 18, 6, 0, 0, (G_GENO | 1),
  197.       { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  198.       15, 150, 0, MS_MEW, MZ_SMALL, M1_ANIMAL | M1_NOHANDS,
  199.       M2_WANDER | M2_CARNIVORE | M2_DOMESTIC, C(HI_DOMESTIC) },
  200.     { "housecat", S_FELINE, 4, 16, 5, 0, 0, (G_GENO | 1),
  201.       { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  202.       20, 200, 0, MS_MEW, MZ_SMALL, M1_ANIMAL | M1_NOHANDS,
  203.       M2_CARNIVORE | M2_DOMESTIC, C(HI_DOMESTIC) },
  204.     { "large cat", S_FELINE, 6, 15, 4, 0, 0, (G_GENO | 1),
  205.       { { AT_BITE, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  206.       25, 250, 0, MS_MEW, MZ_SMALL, M1_ANIMAL | M1_NOHANDS,
  207.       M2_STRONG | M2_CARNIVORE | M2_DOMESTIC, C(HI_DOMESTIC) },
  208.     { "jaguar", S_FELINE, 4, 15, 6, 0, 0, (G_GENO | 2),
  209.       { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  210.         { AT_BITE, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK },
  211.       30, 300, 0, MS_GROWL, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
  212.       M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  213.     { "tiger", S_FELINE, 6, 12, 6, 0, 0, (G_GENO | 2),
  214.       { { AT_CLAW, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 2, 4 },
  215.         { AT_BITE, AD_PHYS, 1, 10 }, NO_ATTK, NO_ATTK },
  216.       30, 300, 0, MS_GROWL, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
  217.       M2_HOSTILE | M2_CARNIVORE, C(YELLOW) },
  218. /*    gremlins    */
  219.     { "gremlin", S_GREMLIN, 5, 12, 2, 25, -9, (G_GENO | 2),
  220.       { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 },
  221.         { AT_BITE, AD_PHYS, 1, 4 }, { AT_CLAW, AD_CURS, 0, 0 }, NO_ATTK },
  222.       10, 30, 0, MS_LAUGH, MZ_SMALL,
  223.       M1_SWIM | M1_HUMANOID | M1_POIS, M2_STALK, C(GREEN) },
  224. /*    humanoids    */
  225. #ifdef TOLKIEN
  226.     { "hobbit", S_HUMANOID, 1, 9, 7, 0, 6, (G_GENO | 2),
  227.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  228.       20, 200, 0, MS_HUMANOID, MZ_SMALL,
  229.       M1_HUMANOID | M1_COLLECT, 0, C(GREEN) },
  230. #endif
  231.     { "bugbear", S_HUMANOID, 3, 9, 5, 0, -6, (G_GENO | 1),
  232.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  233.       25, 250, 0, MS_GROWL, MZ_LARGE, M1_HUMANOID | M1_COLLECT,
  234.       M2_STRONG, C(BROWN) },
  235.     { "dwarf", S_HUMANOID,    2, 6, 4, 10, 4, (G_GENO | 3),
  236.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  237.       30, 300, 0, MS_HUMANOID, MZ_HUMAN,
  238.       M1_TUNNEL | M1_NEEDPICK | M1_HUMANOID | M1_GREEDY | M1_JEWELS |
  239.       M1_COLLECT, M2_DWARF | M2_STRONG, C(RED) },
  240.     { "dwarf lord", S_HUMANOID,  4, 6, 4, 10, 5, (G_GENO | 2),
  241.       { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
  242.         NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0, MS_HUMANOID, MZ_HUMAN,
  243.       M1_TUNNEL | M1_NEEDPICK | M1_HUMANOID | M1_GREEDY | M1_JEWELS |
  244.       M1_COLLECT, M2_DWARF | M2_STRONG | M2_LORD, C(BLUE) },
  245.     { "dwarf king", S_HUMANOID,  6, 6, 4, 20, 6, (G_GENO | 1),
  246.       { { AT_WEAP, AD_PHYS, 2, 6 }, { AT_WEAP, AD_PHYS, 2, 6 },
  247.         NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0, MS_HUMANOID, MZ_HUMAN,
  248.       M1_TUNNEL | M1_NEEDPICK | M1_HUMANOID | M1_GREEDY | M1_JEWELS |
  249.       M1_COLLECT, M2_DWARF | M2_STRONG | M2_PRINCE, C(HI_LORD) },
  250. /*    imps & other minor demons/devils */
  251.     { "manes", S_IMP, 1, 3, 7, 0, -7, (G_GENO | G_LGROUP | G_NOCORPSE | 1),
  252.       { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  253.         { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK },
  254.       10, 100, 0, MS_CUSS, MZ_SMALL, M1_POIS, M2_STALK, C(RED) },
  255.     { "homunculus", S_IMP, 2, 12, 6, 10, -7, (G_GENO | 2),
  256.       { { AT_BITE, AD_SLEE, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  257.       20, 200, 0, MS_SILENT, MZ_TINY,
  258.       M1_FLY | M1_POIS | M1_POIS_RES | M1_SLEE_RES, M2_STALK, C(GREEN) },
  259.     { "lemure", S_IMP, 3, 3, 7, 0, -7,
  260.       (G_HELL | G_GENO | G_LGROUP | G_NOCORPSE | 1),
  261.       { { AT_CLAW, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  262.       10, 100, 0, MS_SILENT, MZ_MEDIUM, M1_POIS | M1_SLEE_RES | M1_REGEN,
  263.       M2_HOSTILE | M2_WANDER | M2_STALK, C(BROWN) },
  264.     { "imp", S_IMP, 3, 12, 2, 20, -7, (G_GENO | 1),
  265.       { { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  266.       1, 10, 0, MS_CUSS, MZ_TINY, M1_REGEN, M2_WANDER | M2_STALK, C(RED) },
  267.     { "quasit", S_IMP, 3, 15, 2, 20, -7, (G_GENO | 2),
  268.       { { AT_CLAW, AD_DRDX, 1, 2 }, { AT_CLAW, AD_DRDX, 1, 2 },
  269.         { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK },
  270.       20, 200, 0, MS_SILENT, MZ_SMALL,
  271.       M1_POIS_RES | M1_REGEN, M2_STALK, C(BLUE) },
  272.     { "tengu", S_IMP, 6, 13, 5, 30, 7, (G_GENO | 3),
  273.       { { AT_BITE, AD_PHYS, 1, 7 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  274.       30, 300, 0, MS_SQAWK, MZ_SMALL,
  275.       M1_POIS_RES | M1_TPORT | M1_TPORT_CONTROL, M2_STALK, C(CYAN) },
  276. /*    jellies     */
  277.     { "blue jelly", S_JELLY, 4, 0, 8, 10, 0, (G_GENO | 2),
  278.       { { AT_NONE, AD_COLD, 0, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  279.       2, 20, 0, MS_SILENT, MZ_MEDIUM,
  280.       M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_COLD_RES | M1_POIS_RES,
  281.       M2_HOSTILE | M2_OMNIVORE, C(BLUE) },
  282.     { "spotted jelly", S_JELLY, 5, 0, 8, 10, 0, (G_GENO | 1),
  283.       { { AT_NONE, AD_ACID, 0, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  284.       2, 20, 0, MS_SILENT, MZ_MEDIUM,
  285.       M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_STON_RES | M1_ACID,
  286.       M2_HOSTILE | M2_OMNIVORE, C(GREEN) },
  287.     { "ochre jelly", S_JELLY, 6, 3, 8, 20, 0, (G_GENO | 2),
  288.       { { AT_ENGL, AD_ACID, 3, 6 }, { AT_NONE, AD_ACID, 0, 6 },
  289.         NO_ATTK, NO_ATTK, NO_ATTK },
  290.       2, 20, 0, MS_SILENT, MZ_MEDIUM,
  291.       M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_STON_RES | M1_ACID,
  292.       M2_HOSTILE | M2_OMNIVORE, C(BROWN) },
  293. /*    kobolds     */
  294.     { "kobold", S_KOBOLD,  0, 6, 7, 0, -2, (G_GENO | 1),
  295.       { { AT_WEAP, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  296.       10, 100, 0, MS_ORC, MZ_SMALL, M1_HUMANOID | M1_POIS | M1_COLLECT,
  297.       M2_HOSTILE, C(BROWN) },
  298.     { "large kobold", S_KOBOLD,  1, 6, 6, 0, -3, (G_GENO | 1),
  299.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  300.       15, 150, 0, MS_ORC, MZ_SMALL, M1_HUMANOID | M1_POIS | M1_COLLECT,
  301.       M2_HOSTILE, C(RED) },
  302.     { "kobold lord", S_KOBOLD,  2, 6, 5, 0, -4, (G_GENO | 1),
  303.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  304.       20, 200, 0, MS_ORC, MZ_SMALL, M1_HUMANOID | M1_POIS | M1_COLLECT,
  305.       M2_HOSTILE | M2_LORD, C(HI_LORD) },
  306.     { "kobold shaman", S_KOBOLD, 1, 6, 6, 10, -4, (G_GENO | 1),
  307.       { { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  308.       15, 150, 0, MS_ORC, MZ_SMALL, M1_HUMANOID | M1_POIS | M1_MAGIC,
  309.       M2_HOSTILE, C(HI_ZAP) },
  310. /*    leprechauns    */
  311.     { "leprechaun", S_LEPRECHAUN, 5, 15, 8, 20, 0, (G_GENO | 4),
  312.       { { AT_CLAW, AD_SGLD, 1, 2 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  313.       30, 300, 0, MS_LAUGH, MZ_TINY, M1_HUMANOID | M1_TPORT | M1_GREEDY,
  314.       M2_HOSTILE, C(GREEN) },
  315. /*    mimics    */
  316.     { "small mimic", S_MIMIC, 7, 3, 7, 0, 0, (G_GENO | 2),
  317.       { { AT_CLAW, AD_PHYS, 3, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  318.       20, 200, 0, MS_SILENT, MZ_MEDIUM,
  319.       M1_HIDE | M1_ANIMAL | M1_NOEYES | M1_NOLIMBS,
  320.       M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  321.     { "large mimic", S_MIMIC, 8, 3, 7, 10, 0, (G_GENO | 1),
  322.       { { AT_CLAW, AD_STCK, 3, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  323.       40, 400, 0, MS_SILENT, MZ_LARGE,
  324.       M1_HIDE | M1_ANIMAL | M1_NOEYES | M1_NOLIMBS,
  325.       M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(RED) },
  326.     { "giant mimic", S_MIMIC, 9, 3, 7, 20, 0, (G_GENO | 1),
  327.       { { AT_CLAW, AD_STCK, 3, 6 }, { AT_CLAW, AD_STCK, 3, 6 },
  328.         NO_ATTK, NO_ATTK, NO_ATTK },
  329.       60, 500, 0, MS_SILENT, MZ_LARGE,
  330.       M1_HIDE | M1_ANIMAL | M1_NOEYES | M1_NOLIMBS,
  331.       M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(HI_LORD) },
  332. /*    nymphs    */
  333.     { "wood nymph", S_NYMPH, 3, 12, 9, 20, 0, (G_GENO | 2),
  334.       { { AT_CLAW, AD_SITM, 0, 0 }, { AT_CLAW, AD_SEDU, 0, 0 },
  335.         NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0, MS_SEDUCE, MZ_HUMAN,
  336.       M1_HUMANOID | M1_TPORT | M1_COLLECT, M2_HOSTILE | M2_FEM, C(GREEN) },
  337.     { "water nymph", S_NYMPH, 3, 12, 9, 20, 0, (G_GENO | 2),
  338.       { { AT_CLAW, AD_SITM, 0, 0 }, { AT_CLAW, AD_SEDU, 0, 0 },
  339.         NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0, MS_SEDUCE, MZ_HUMAN,
  340.       M1_HUMANOID | M1_TPORT | M1_COLLECT | M1_SWIM,
  341.       M2_HOSTILE | M2_FEM, C(BLUE) },
  342.     { "mountain nymph", S_NYMPH, 3, 12, 9, 20, 0, (G_GENO | 2),
  343.       { { AT_CLAW, AD_SITM, 0, 0 }, { AT_CLAW, AD_SEDU, 0, 0 },
  344.         NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0, MS_SEDUCE, MZ_HUMAN,
  345.       M1_HUMANOID | M1_TPORT | M1_COLLECT, M2_HOSTILE | M2_FEM, C(BROWN) },
  346. /*    orcs    */
  347.     { "goblin", S_ORC,  0, 6, 6, 0, -3, (G_GENO | 2),
  348.       { { AT_WEAP, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  349.       10, 100, 0, MS_ORC, MZ_SMALL,
  350.       M1_HUMANOID | M1_COLLECT, M2_ORC, C(GRAY) },
  351.     { "hobgoblin", S_ORC,  1, 9, 6, 0, -4, (G_GENO | 2),
  352.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  353.       20, 200, 0, MS_ORC, MZ_HUMAN,
  354.       M1_HUMANOID | M1_COLLECT, M2_ORC | M2_STRONG, C(BROWN) },
  355.     /* "orc" for zombie corpses only; they don't get created at random */
  356.     { "orc", S_ORC,  1, 9, 6, 0, -3, (G_GENO | G_NOGEN | G_LGROUP),
  357.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  358.       15, 150, 0, MS_ORC, MZ_HUMAN,
  359.       M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
  360.       M2_ORC | M2_HOSTILE | M2_STRONG, C(RED) },
  361.     { "hill orc", S_ORC, 2, 9, 6, 0, -4, (G_GENO | G_LGROUP | 2),
  362.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  363.       20, 200, 0, MS_ORC, MZ_HUMAN,
  364.       M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
  365.       M2_ORC | M2_HOSTILE | M2_STRONG, C(YELLOW) },
  366. #ifdef TOLKIEN
  367.     { "Mordor orc", S_ORC, 3, 5, 6, 0, -5, (G_GENO | G_LGROUP | 1),
  368.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  369.       20, 200, 0, MS_ORC, MZ_HUMAN,
  370.       M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
  371.       M2_ORC | M2_HOSTILE | M2_STRONG, C(BLUE) },
  372.     { "Uruk-hai", S_ORC, 3, 7, 5, 0, -4, (G_GENO | G_LGROUP | 1),
  373.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  374.       30, 300, 0, MS_ORC, MZ_HUMAN,
  375.       M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
  376.       M2_ORC | M2_HOSTILE | M2_STRONG, C(BLACK) },
  377. #endif
  378.     { "orc shaman", S_ORC, 3, 9, 5, 10, -5, (G_GENO | 1),
  379.       { { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  380.       30, 300, 0, MS_ORC, MZ_HUMAN,
  381.       M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_MAGIC,
  382.       M2_ORC | M2_HOSTILE | M2_STRONG, C(HI_ZAP) },
  383.     { "orc-captain", S_ORC, 5, 5, 4, 0, -5, (G_GENO | 1),
  384.       { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
  385.         NO_ATTK, NO_ATTK, NO_ATTK },
  386.       35, 350, 0, MS_ORC, MZ_HUMAN,
  387.       M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
  388.       M2_ORC | M2_HOSTILE | M2_STRONG, C(HI_LORD) },
  389. /*     piercers    */
  390.     { "rock piercer", S_PIERCER, 3, 1, 3, 0, 0, (G_GENO | 2),
  391.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  392.       20, 200, 0, MS_SILENT, MZ_SMALL,
  393.       M1_HIDE | M1_ANIMAL | M1_NOEYES | M1_NOLIMBS,
  394.       M2_HOSTILE | M2_CARNIVORE, C(GRAY) },
  395.     { "iron piercer", S_PIERCER, 5, 1, 0, 0, 0, (G_GENO | 1),
  396.       { { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  397.       40, 300, 0, MS_SILENT, MZ_MEDIUM,
  398.       M1_HIDE | M1_ANIMAL | M1_NOEYES | M1_NOLIMBS,
  399.       M2_HOSTILE | M2_CARNIVORE, C(CYAN) },
  400. /*    quadrupeds (generic)    */
  401.     { "rothe", S_QUADRUPED, 2, 9, 7, 0, 0, (G_GENO | G_SGROUP | 4),
  402.       { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_BITE, AD_PHYS, 1, 3 },
  403.         { AT_BITE, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK },
  404.       10, 100, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
  405.       M2_HOSTILE | M2_CARNIVORE, C(GRAY) },
  406. #ifdef TOLKIEN
  407.     { "mumakil", S_QUADRUPED, 5, 9, 0, 0, -2, (G_GENO | 1),
  408.       { { AT_BUTT, AD_PHYS, 4, 12 }, { AT_BITE, AD_PHYS, 2, 6 },
  409.         NO_ATTK, NO_ATTK, NO_ATTK },
  410.       70, 500, 0, MS_SILENT, MZ_LARGE,
  411.       M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS,
  412.       M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(GRAY) },
  413. #endif
  414.     { "leocrotta", S_QUADRUPED, 6, 18, 4, 10, 0, (G_GENO | 2),
  415.       { { AT_CLAW, AD_PHYS, 2, 6 }, { AT_BITE, AD_PHYS, 2, 6 },
  416.         { AT_CLAW, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK },
  417.       50, 500, 0, MS_IMITATE, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
  418.       M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(RED) },
  419.     { "wumpus", S_QUADRUPED, 8, 3, 2, 10, 0, (G_GENO | 1),
  420.       { { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  421.       50, 500, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
  422.       M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(CYAN) },
  423.     { "titanothere", S_QUADRUPED, 12, 12, 6, 0, 0, (G_GENO | 2),
  424.       { { AT_CLAW, AD_PHYS, 2, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  425.       65, 650, 0, MS_SILENT, MZ_LARGE,
  426.       M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS,
  427.       M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(GRAY) },
  428.     { "baluchitherium", S_QUADRUPED, 14, 12, 5, 0, 0, (G_GENO | 2),
  429.       { { AT_CLAW, AD_PHYS, 5, 4 }, { AT_CLAW, AD_PHYS, 5, 4 },
  430.         NO_ATTK, NO_ATTK, NO_ATTK },
  431.       80, 800, 0, MS_SILENT, MZ_LARGE,
  432.       M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS,
  433.       M2_HOSTILE | M2_STRONG | M2_HERBIVORE, C(GRAY) },
  434. /*    rodents     */
  435.     { "sewer rat",    S_RODENT, 0, 12, 7, 0, 0, (G_GENO | G_SGROUP | 1),
  436.       { { AT_BITE, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  437.       2, 20, 0, MS_SQEEK, MZ_TINY, M1_ANIMAL | M1_NOHANDS,
  438.       M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  439.     { "giant rat",    S_RODENT, 1, 10, 7, 0, 0, (G_GENO | G_SGROUP | 2),
  440.       { { AT_BITE, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  441.       3, 30, 0, MS_SQEEK, MZ_TINY, M1_ANIMAL | M1_NOHANDS,
  442.       M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  443.     { "rabid rat", S_RODENT, 2, 12, 6, 0, 0, (G_GENO | 1),
  444.       { { AT_BITE, AD_DRCO, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  445.       3, 10, 0, MS_SQEEK, MZ_TINY, M1_ANIMAL | M1_NOHANDS | M1_POIS,
  446.       M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  447.     { "ratwere", S_RODENT, 2, 12, 6, 10, -7, G_NOGEN | G_NOCORPSE,
  448.       { { AT_BITE, AD_WERE, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  449.       3, 30, 0, MS_SQEEK, MZ_TINY, M1_NOHANDS | M1_NOPOLY |
  450.       M1_POIS | M1_REGEN, M2_WERE | M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  451.     { "rock mole", S_RODENT, 3, 3, 0, 20, 0, (G_GENO | 2),
  452.       { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  453.       3, 30, 0, MS_SILENT, MZ_SMALL,
  454.       M1_TUNNEL | M1_ANIMAL | M1_NOHANDS | M1_GREEDY | M1_JEWELS |
  455.       M1_COLLECT, M2_HOSTILE | M2_METALLIVORE, C(GRAY) },
  456. /*    spiders and scorpions    */
  457.     { "cave spider", S_SPIDER, 1, 12, 3, 0, 0, (G_GENO | G_SGROUP | 2),
  458.       { { AT_BITE, AD_PHYS, 1, 2 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  459.       5, 50, 0, MS_SILENT, MZ_TINY,
  460.       M1_CONCEAL | M1_ANIMAL | M1_NOHANDS | M1_POIS_RES,
  461.       M2_HOSTILE | M2_CARNIVORE | M2_EGGS, C(GRAY) },
  462.     { "scorpion", S_SPIDER, 5, 15, 3, 0, 0, (G_GENO | 2),
  463.       { { AT_CLAW, AD_PHYS, 1, 2 }, { AT_CLAW, AD_PHYS, 1, 2 },
  464.         { AT_STNG, AD_DRST, 1, 4 }, NO_ATTK, NO_ATTK },
  465.       10, 100, 0, MS_SILENT, MZ_SMALL,
  466.       M1_CONCEAL | M1_ANIMAL | M1_NOHANDS | M1_POIS,
  467.       M2_HOSTILE | M2_CARNIVORE | M2_EGGS, C(RED) },
  468.     { "giant spider", S_SPIDER, 5, 15, 4, 0, 0, (G_GENO | 1),
  469.       { { AT_BITE, AD_DRST, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  470.       10, 100, 0, MS_SILENT, MZ_LARGE,
  471.       M1_ANIMAL | M1_NOHANDS | M1_POIS | M1_POIS_RES,
  472.       M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_EGGS, C(MAGENTA) },
  473. /*    trappers, lurkers, &c.    */
  474.     { "lurker above", S_TRAPPER, 10, 3, 3, 0, 0, (G_GENO | 2),
  475.       { { AT_ENGL, AD_DGST, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  476.       40, 350, 0, MS_SILENT, MZ_HUGE,
  477.       M1_HIDE | M1_FLY | M1_ANIMAL | M1_NOEYES | M1_NOLIMBS,
  478.       M2_HOSTILE | M2_STALK | M2_STRONG | M2_CARNIVORE, C(GRAY) },
  479.     { "trapper", S_TRAPPER, 12, 3, 3, 0, 0, (G_GENO | 2),
  480.       { { AT_ENGL, AD_DGST, 1, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  481.       40, 350, 0, MS_SILENT, MZ_HUGE,
  482.       M1_HIDE | M1_ANIMAL | M1_NOEYES | M1_NOLIMBS,
  483.       M2_HOSTILE | M2_STALK | M2_STRONG | M2_CARNIVORE, C(GREEN) },
  484. /*    unicorns    */
  485.     { "white unicorn", S_UNICORN, 4, 24, 2, 70, 7, (G_GENO | 2),
  486.       { { AT_BUTT, AD_PHYS, 1, 12 }, { AT_KICK, AD_PHYS, 1, 6 },
  487.         NO_ATTK, NO_ATTK, NO_ATTK },
  488.       30, 300, 0, MS_NEIGH, MZ_LARGE, M1_NOHANDS | M1_POIS_RES | M1_JEWELS,
  489.       M2_WANDER | M2_STRONG | M2_HERBIVORE, C(WHITE) },
  490.     { "gray unicorn", S_UNICORN, 4, 24, 2, 70, 0, (G_GENO | 1),
  491.       { { AT_BUTT, AD_PHYS, 1, 12 }, { AT_KICK, AD_PHYS, 1, 6 },
  492.         NO_ATTK, NO_ATTK, NO_ATTK },
  493.       30, 300, 0, MS_NEIGH, MZ_LARGE, M1_NOHANDS | M1_POIS_RES | M1_JEWELS,
  494.       M2_WANDER | M2_STRONG | M2_HERBIVORE, C(GRAY) },
  495.     { "black unicorn", S_UNICORN, 4, 24, 2, 70, -7, (G_GENO | 1),
  496.       { { AT_BUTT, AD_PHYS, 1, 12 }, { AT_KICK, AD_PHYS, 1, 6 },
  497.         NO_ATTK, NO_ATTK, NO_ATTK },
  498.       30, 300, 0, MS_NEIGH, MZ_LARGE, M1_NOHANDS | M1_POIS_RES | M1_JEWELS,
  499.       M2_WANDER | M2_STRONG | M2_HERBIVORE, C(BLACK) },
  500. /*    vortices    */
  501.     { "fog cloud",    S_VORTEX, 3,  1, 0, 0, 0, (G_GENO | G_NOCORPSE | 2),
  502.       { { AT_ENGL, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  503.       10, 0, 0, MS_SILENT, MZ_HUGE,
  504.       M1_FLY | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_POIS_RES,
  505.       M2_HOSTILE, C(GRAY) },
  506.     { "dust vortex", S_VORTEX, 4, 20, 2, 30, 0, (G_GENO | G_NOCORPSE | 2),
  507.       { { AT_ENGL, AD_BLND, 2, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  508.       20, 0, 0, MS_SILENT, MZ_HUGE,
  509.       M1_FLY | M1_NOEYES | M1_NOLIMBS | M1_POIS_RES, M2_HOSTILE, C(BROWN) },
  510.     { "energy vortex", S_VORTEX, 6, 20, 2, 30, 0, (G_GENO | G_NOCORPSE | 1),
  511.       { { AT_ENGL, AD_ELEC, 1, 6 }, { AT_ENGL, AD_DREN, 0, 0 },
  512.         { AT_NONE, AD_ELEC, 0, 4 }, NO_ATTK, NO_ATTK },
  513.       20, 0, 0, MS_SILENT, MZ_HUGE,
  514.       M1_FLY | M1_NOEYES | M1_NOLIMBS | M1_POIS_RES | M1_ELEC_RES,
  515.       M2_HOSTILE, C(HI_ZAP) },
  516.     { "ice vortex", S_VORTEX, 5, 20, 2, 30, 0, (G_GENO | G_NOCORPSE | 1),
  517.       { { AT_ENGL, AD_COLD, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  518.       30, 0, 0, MS_SILENT, MZ_HUGE,
  519.       M1_FLY | M1_NOEYES | M1_NOLIMBS | M1_POIS_RES | M1_COLD_RES,
  520.       M2_HOSTILE, C(CYAN) },
  521.     { "steam vortex", S_VORTEX, 7, 22, 2, 30, 0,
  522.       (G_HELL | G_GENO | G_NOCORPSE | 2),
  523.       { { AT_ENGL, AD_FIRE, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  524.       30, 0, 0, MS_SILENT, MZ_HUGE,
  525.       M1_FLY | M1_NOEYES | M1_NOLIMBS | M1_POIS_RES | M1_FIRE_RES,
  526.       M2_HOSTILE, C(BLUE) },
  527.     { "fire vortex", S_VORTEX, 8, 22, 2, 30, 0,
  528.       (G_HELL | G_GENO | G_NOCORPSE | 1),
  529.       { { AT_ENGL, AD_FIRE, 1, 10 }, { AT_NONE, AD_FIRE, 0, 4 },
  530.         NO_ATTK, NO_ATTK, NO_ATTK },
  531.       30, 0, 0, MS_SILENT, MZ_HUGE,
  532.       M1_FLY | M1_NOEYES | M1_NOLIMBS | M1_POIS_RES | M1_FIRE_RES,
  533.       M2_HOSTILE, C(YELLOW) },
  534. /*    worms    */
  535. #ifdef WORM
  536.     { "baby long worm", S_WORM, 8, 3, 5, 0, 0, G_GENO,
  537.       { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  538.       25, 250, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_SLITHY | M1_NOLIMBS,
  539.       M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  540. #endif
  541.     { "baby purple worm", S_WORM, 8, 3, 5, 0, 0, G_GENO,
  542.       { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  543.       25, 250, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_SLITHY | M1_NOLIMBS,
  544.       M2_HOSTILE | M2_CARNIVORE, C(MAGENTA) },
  545. #ifdef WORM
  546.     { "long worm", S_WORM, 8, 3, 5, 10, 0, (G_GENO | 2),
  547.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  548.       50, 500, 0, MS_SILENT, MZ_GIGANTIC,
  549.       M1_ANIMAL | M1_SLITHY | M1_NOLIMBS | M1_NOPOLY,
  550.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_EGGS,
  551.       C(BROWN) },
  552. #endif
  553.     { "purple worm", S_WORM, 15, 9, 6, 20, 0, (G_GENO | 2),
  554.       { { AT_BITE, AD_PHYS, 2, 8 }, { AT_ENGL, AD_DGST, 1, 10 },
  555.         NO_ATTK, NO_ATTK, NO_ATTK }, 70, 700, 0, MS_SILENT, MZ_GIGANTIC,
  556.       M1_ANIMAL | M1_SLITHY | M1_NOLIMBS,
  557.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_EGGS,
  558.       C(MAGENTA) },
  559. /*    xan, &c.    */
  560.     { "grid bug", S_XAN, 0, 12, 9, 0, 0,
  561.       (G_GENO | G_SGROUP | G_NOCORPSE | 3),
  562.       { { AT_BITE, AD_ELEC, 1, 1 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  563.       5, 50, 0, MS_BUZZ, MZ_TINY, M1_ANIMAL | M1_ELEC_RES, M2_HOSTILE,
  564.       C(MAGENTA) },
  565.     { "xan", S_XAN, 7, 18, -4, 0, 0, (G_GENO | 3),
  566.       { { AT_STNG, AD_LEGS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  567.       30, 300, 0, MS_BUZZ, MZ_TINY, M1_FLY | M1_ANIMAL | M1_NOHANDS |
  568.       M1_POIS | M1_POIS_RES, M2_HOSTILE, C(RED) },
  569. /*    yellow light    */
  570.     { "yellow light", S_YLIGHT,  3, 15, 0, 0, 0, (G_GENO | 4),
  571.       { { AT_EXPL, AD_BLND, 10, 20 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  572.       1, 10, 0, MS_SILENT, MZ_SMALL,
  573.       M1_FLY | M1_NOLIMBS, M2_HOSTILE, C(BRIGHT|YELLOW) },
  574. /*    zruty    */
  575.     { "zruty", S_ZRUTY, 9, 8, 3, 0, 0, (G_GENO | 2),
  576.       { { AT_CLAW, AD_PHYS, 3, 4 }, { AT_CLAW, AD_PHYS, 3, 4 },
  577.         { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK },
  578.       60, 600, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_HUMANOID,
  579.       M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(BROWN) },
  580. /*    Apes    */
  581.     { "ape", S_APE, 4, 12, 6, 0, 0, (G_GENO | G_SGROUP | 2),
  582.       { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  583.         { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK },
  584.       50, 500, 0, MS_GROWL, MZ_LARGE, M1_ANIMAL | M1_HUMANOID,
  585.       M2_STRONG | M2_CARNIVORE, C(BROWN) },
  586.     { "carnivorous ape", S_APE, 5, 12, 6, 0, 0, (G_GENO | 1),
  587.       { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  588.         { AT_HUGS, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK },
  589.       55, 550, 0, MS_GROWL, MZ_LARGE, M1_ANIMAL | M1_HUMANOID,
  590.       M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(BROWN) },
  591. /*    Bats    */
  592.     { "bat", S_BAT, 0, 22, 8, 0, 0, (G_GENO | G_SGROUP | 1),
  593.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  594.       2, 20, 0, MS_SQEEK, MZ_TINY, M1_FLY | M1_ANIMAL | M1_NOHANDS,
  595.       M2_WANDER | M2_CARNIVORE, C(BROWN) },
  596.     { "giant bat", S_BAT, 2, 22, 7, 0, 0, (G_GENO | 2),
  597.       { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  598.       3, 30, 0, MS_SQEEK, MZ_MEDIUM, M1_FLY | M1_ANIMAL | M1_NOHANDS,
  599.       M2_WANDER | M2_HOSTILE | M2_CARNIVORE, C(RED) },
  600.     { "vampire bat", S_BAT, 5, 20, 6, 0, 0, (G_GENO | 2),
  601.       { { AT_BITE, AD_PHYS, 1, 6 }, { AT_BITE, AD_DRST, 0, 0 },
  602.         NO_ATTK, NO_ATTK, NO_ATTK },
  603.       3, 20, 0, MS_SQEEK, MZ_TINY,
  604.       M1_FLY | M1_ANIMAL | M1_NOHANDS | M1_POIS | M1_REGEN,
  605.       M2_UNDEAD | M2_HOSTILE, C(BLACK) },
  606. /*    Centaurs    */
  607.     { "plains centaur", S_CENTAUR, 4, 18, 4, 0, 0, (G_GENO | 1),
  608.       { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_KICK, AD_PHYS, 1, 6 },
  609.         NO_ATTK, NO_ATTK, NO_ATTK},
  610.       50, 500, 0, MS_SILENT, MZ_LARGE, M1_COLLECT | M1_GREEDY, M2_STRONG,
  611.       C(BROWN)  },
  612.     { "forest centaur", S_CENTAUR, 5, 18, 3, 10, -1, (G_GENO | 1),
  613.       { { AT_WEAP, AD_PHYS, 1, 8 }, { AT_KICK, AD_PHYS, 1, 6 },
  614.         NO_ATTK, NO_ATTK, NO_ATTK},
  615.       55, 600, 0, MS_SILENT, MZ_LARGE, M1_COLLECT | M1_GREEDY, M2_STRONG,
  616.       C(GREEN)  },
  617.     { "mountain centaur", S_CENTAUR, 6, 20, 2, 10, -3, (G_GENO | 1),
  618.       { { AT_WEAP, AD_PHYS, 1, 10 }, { AT_KICK, AD_PHYS, 1, 6 },
  619.         { AT_KICK, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK },
  620.       55, 500, 0, MS_SILENT, MZ_LARGE, M1_COLLECT | M1_GREEDY, M2_STRONG,
  621.       C(CYAN) },
  622. /*    Dragons     */
  623.     { "baby gray dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  624.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  625.       50, 500, 0, MS_ROAR, MZ_HUGE,
  626.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_GREEDY | M1_JEWELS,
  627.       M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(GRAY) },
  628.     { "baby red dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  629.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  630.       50, 500, 0, MS_ROAR, MZ_HUGE,
  631.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_GREEDY | M1_JEWELS |
  632.       M1_FIRE_RES,
  633.       M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(RED) },
  634.     { "baby white dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  635.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  636.       50, 500, 0, MS_ROAR, MZ_HUGE,
  637.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_GREEDY | M1_JEWELS |
  638.       M1_COLD_RES,
  639.       M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(WHITE) },
  640.     { "baby blue dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  641.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  642.       50, 500, 0, MS_ROAR, MZ_HUGE,
  643.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_GREEDY | M1_JEWELS |
  644.       M1_ELEC_RES,
  645.       M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(BLUE) },
  646.     { "baby green dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  647.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  648.       50, 500, 0, MS_ROAR, MZ_HUGE,
  649.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_GREEDY | M1_JEWELS |
  650.       M1_POIS | M1_POIS_RES,
  651.       M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(GREEN) },
  652.     { "baby orange dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  653.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  654.       50, 500, 0, MS_ROAR, MZ_HUGE,
  655.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_GREEDY | M1_JEWELS |
  656.       M1_SLEE_RES,
  657.       M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(ORANGE_COLORED) },
  658.     { "baby black dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  659.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  660.       50, 500, 0, MS_ROAR, MZ_HUGE,
  661.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_GREEDY | M1_JEWELS,
  662.       M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(BLACK) },
  663.     { "baby yellow dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  664.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  665.       50, 500, 0, MS_ROAR, MZ_HUGE,
  666.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_GREEDY | M1_JEWELS |
  667.       M1_ACID | M1_STON_RES,
  668.       M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(YELLOW) },
  669.     { "gray dragon", S_DRAGON, 10, 9, -1, 20, 4, (G_GENO | 1),
  670.       { { AT_BREA, AD_MAGM, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
  671.         { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
  672.       150, 1500, 0, MS_ROAR, MZ_GIGANTIC,
  673.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_GREEDY | M1_JEWELS |
  674.       M1_MAGIC | M1_SEE_INVIS,
  675.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_EGGS, C(GRAY) },
  676.     { "red dragon", S_DRAGON, 10, 9, -1, 20, -4, (G_GENO | 1),
  677.       { { AT_BREA, AD_FIRE, 6, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
  678.         { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
  679.       150, 1500, 0, MS_ROAR, MZ_GIGANTIC,
  680.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_GREEDY | M1_JEWELS |
  681.       M1_MAGIC | M1_SEE_INVIS | M1_FIRE_RES,
  682.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_EGGS, C(RED) },
  683.     { "orange dragon", S_DRAGON, 10, 9, -1, 20, 5, (G_GENO | 1),
  684.       { { AT_BREA, AD_SLEE, 4, 25 }, { AT_BITE, AD_PHYS, 3, 8 },
  685.         { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
  686.       150, 1500, 0, MS_ROAR, MZ_GIGANTIC,
  687.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_GREEDY | M1_JEWELS |
  688.       M1_MAGIC | M1_SEE_INVIS | M1_SLEE_RES,
  689.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_EGGS,
  690.       C(ORANGE_COLORED) },
  691.     { "white dragon", S_DRAGON, 10, 9, -1, 20, -5, (G_GENO | 1),
  692.       { { AT_BREA, AD_COLD, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
  693.         { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
  694.       150, 1500, 0, MS_ROAR, MZ_GIGANTIC,
  695.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_GREEDY | M1_JEWELS |
  696.       M1_MAGIC | M1_SEE_INVIS | M1_COLD_RES,
  697.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_EGGS,
  698.       C(WHITE) },
  699.     { "black dragon", S_DRAGON, 10, 9, -1, 20, -6, (G_GENO | 1),
  700.       { { AT_BREA, AD_DISN, 4, 10 }, { AT_BITE, AD_PHYS, 3, 8 },
  701.         { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
  702.       150, 1500, 0, MS_ROAR, MZ_GIGANTIC,
  703.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_GREEDY | M1_JEWELS |
  704.       M1_MAGIC | M1_SEE_INVIS,
  705.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_EGGS,
  706.       C(BLACK) },
  707.     { "blue dragon", S_DRAGON, 10, 9, -1, 20, -7, (G_GENO | 1),
  708.       { { AT_BREA, AD_ELEC, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
  709.         { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
  710.       150, 1500, 0, MS_ROAR, MZ_GIGANTIC,
  711.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_GREEDY | M1_JEWELS |
  712.       M1_MAGIC | M1_SEE_INVIS | M1_ELEC_RES,
  713.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_EGGS,
  714.       C(BLUE) },
  715.     { "green dragon", S_DRAGON, 10, 9, -1, 20, 6, (G_GENO | 1),
  716.       { { AT_BREA, AD_DRST, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
  717.         { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
  718.       150, 1500, 0, MS_ROAR, MZ_GIGANTIC,
  719.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_GREEDY | M1_JEWELS |
  720.       M1_MAGIC | M1_SEE_INVIS | M1_POIS | M1_POIS_RES,
  721.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_EGGS,
  722.       C(GREEN) },
  723.     { "yellow dragon", S_DRAGON, 10, 9, -1, 20, 7, (G_GENO | 1),
  724.       { { AT_BREA, AD_ACID, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
  725.         { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
  726.       150, 1500, 0, MS_ROAR, MZ_GIGANTIC,
  727.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_GREEDY | M1_JEWELS |
  728.       M1_MAGIC | M1_SEE_INVIS | M1_ACID | M1_STON_RES,
  729.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_EGGS,
  730.       C(YELLOW) },
  731. /*    Elementals    */
  732.     { "air elemental", S_ELEMENTAL, 8, 36, 2, 30, 0, (G_NOCORPSE | 1),
  733.       { { AT_ENGL, AD_PHYS, 2, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  734.       5, 0, 0, MS_SILENT, MZ_HUGE,
  735.       M1_FLY | M1_NOEYES | M1_NOLIMBS | M1_POIS_RES, M2_STRONG, C(CYAN) },
  736.     { "fire elemental", S_ELEMENTAL, 8, 12, 2, 30, 0, (G_NOCORPSE | 1),
  737.       { { AT_CLAW, AD_FIRE, 3, 6 }, { AT_NONE, AD_FIRE, 0, 4 },
  738.         NO_ATTK, NO_ATTK, NO_ATTK },
  739.       5, 0, 0, MS_SILENT, MZ_HUGE,
  740.       M1_FLY | M1_NOEYES | M1_NOLIMBS | M1_POIS_RES | M1_FIRE_RES,
  741.       M2_STRONG, C(YELLOW) },
  742.     { "earth elemental", S_ELEMENTAL, 8, 6, 2, 30, 0, (G_NOCORPSE | 1),
  743.       { { AT_CLAW, AD_PHYS, 4, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  744.       50, 0, 0, MS_SILENT, MZ_HUGE,
  745.       M1_WALLWALK | M1_NOEYES | M1_NOLIMBS | M1_POIS_RES | M1_THICK_HIDE |
  746.       M1_STON_RES,
  747.       M2_STRONG, C(BROWN) },
  748.     { "water elemental", S_ELEMENTAL, 8, 6, 2, 30, 0, (G_NOCORPSE | 1),
  749.       { { AT_CLAW, AD_PHYS, 5, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  750.       50, 0, 0, MS_SILENT, MZ_HUGE,
  751.       M1_NOEYES | M1_NOLIMBS | M1_POIS_RES | M1_SWIM, M2_STRONG, C(BLUE) },
  752. /*    Fungi    */
  753.     { "violet fungus", S_FUNGUS, 3, 1, 7, 0, 0, (G_GENO | 2),
  754.       { { AT_TUCH, AD_PHYS, 1, 4 }, { AT_TUCH, AD_STCK, 0, 0 },
  755.         NO_ATTK, NO_ATTK, NO_ATTK }, 10, 100, 0, MS_SILENT, MZ_SMALL,
  756.       M1_NOEYES | M1_NOLIMBS | M1_POIS_RES,
  757.       M2_HOSTILE | M2_OMNIVORE, C(MAGENTA) },
  758.     { "brown mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 1),
  759.       { { AT_NONE, AD_COLD, 0, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  760.       5, 30, 0, MS_SILENT, MZ_SMALL,
  761.       M1_NOEYES | M1_NOLIMBS | M1_COLD_RES | M1_POIS_RES,
  762.       M2_HOSTILE | M2_OMNIVORE, C(BROWN) },
  763.     { "yellow mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 2),
  764.       { { AT_NONE, AD_STUN, 0, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  765.       5, 30, 0, MS_SILENT, MZ_SMALL,
  766.       M1_NOEYES | M1_NOLIMBS | M1_POIS | M1_POIS_RES,
  767.       M2_HOSTILE | M2_OMNIVORE, C(YELLOW) },
  768.     { "green mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 1),
  769.       { { AT_NONE, AD_ACID, 0, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  770.       5, 30, 0, MS_SILENT, MZ_SMALL,
  771.       M1_NOEYES | M1_NOLIMBS | M1_ACID | M1_STON_RES,
  772.       M2_HOSTILE | M2_OMNIVORE, C(GREEN) },
  773.     { "red mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 1),
  774.       { { AT_NONE, AD_FIRE, 0, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  775.       5, 30, 0, MS_SILENT, MZ_SMALL,
  776.       M1_NOEYES | M1_NOLIMBS | M1_FIRE_RES | M1_POIS_RES,
  777.       M2_HOSTILE | M2_OMNIVORE, C(RED) },
  778. /*    Gnomes    */
  779.     { "gnome", S_GNOME, 1, 6, 5, 4, 0, (G_GENO | G_SGROUP | 1),
  780.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  781.       10, 100, 0, MS_ORC, MZ_SMALL,
  782.       M1_HUMANOID | M1_COLLECT, 0, C(BROWN) },
  783.     { "gnome lord", S_GNOME, 3, 8, 4, 4, 0, (G_GENO | 2),
  784.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  785.       15, 120, 0, MS_ORC, MZ_SMALL,
  786.       M1_HUMANOID | M1_COLLECT, M2_LORD, C(BLUE) },
  787.     { "gnome king", S_GNOME, 5, 10, 2, 20, 0, (G_GENO | 1),
  788.       { { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  789.       20, 150, 0, MS_ORC, MZ_SMALL,
  790.       M1_HUMANOID | M1_COLLECT, M2_PRINCE, C(HI_LORD) },
  791.     { "gnomish wizard", S_GNOME, 3, 10, 4, 10, 0, (G_GENO | 1),
  792.       { { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  793.       15, 120, 0, MS_ORC, MZ_SMALL,
  794.       M1_HUMANOID | M1_MAGIC, 0, C(HI_ZAP) },
  795. #ifdef SPLITMON_1
  796. };
  797. #endif
  798. #endif /* !SPLITMON_2 */
  799.  
  800. /* horrible kludge alert:
  801.  * This is a compiler-specific kludge to allow the compilation of monst.o in
  802.  * two pieces, by defining first SPLITMON_1 and then SPLITMON_2. The
  803.  * resulting assembler files (monst1.s and monst2.s) are then run through
  804.  * sed to change local symbols, concatenated together, and assembled to
  805.  * produce monst.o. THIS ONLY WORKS WITH THE ATARI GCC, and should only
  806.  * be done if you don't have enough memory to compile monst.o the "normal"
  807.  * way.  --ERS
  808.  */
  809.  
  810. #ifndef SPLITMON_1
  811. #ifdef SPLITMON_2
  812. struct permonst _mons2[] = {
  813. #endif
  814. /*    giant Humanoids */
  815.     { "ettin", S_GIANT, 10, 12, 3, 0, 0, (G_GENO | 1),
  816.       { { AT_WEAP, AD_PHYS, 2, 8 }, { AT_WEAP, AD_PHYS, 3, 6 },
  817.         NO_ATTK, NO_ATTK, NO_ATTK },
  818.       50, 500, 0, MS_GRUNT, MZ_HUGE, M1_ANIMAL | M1_HUMANOID | M1_COLLECT,
  819.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE, C(BROWN) },
  820.     { "giant", S_GIANT, 6, 6, 0, 0, 2, (G_GENO | G_NOGEN | 1),
  821.       { { AT_WEAP, AD_PHYS, 2, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  822.       75, 750, 0, MS_SILENT, MZ_HUGE, M1_HUMANOID | M1_COLLECT | M1_JEWELS,
  823.        M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY, C(RED) },
  824.     { "stone giant", S_GIANT, 6, 6, 0, 0, 2, (G_GENO | G_SGROUP | 1),
  825.       { { AT_WEAP, AD_PHYS, 2, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  826.       75, 750, 0, MS_SILENT, MZ_HUGE, M1_HUMANOID | M1_COLLECT | M1_JEWELS,
  827.        M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY, C(GRAY) },
  828.     { "hill giant", S_GIANT, 8, 10, 6, 0, -2, (G_GENO | G_SGROUP | 1),
  829.       { { AT_WEAP, AD_PHYS, 2, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  830.       70, 700, 0, MS_SILENT, MZ_HUGE, M1_HUMANOID | M1_COLLECT | M1_JEWELS,
  831.       M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY, C(CYAN) },
  832.     { "fire giant", S_GIANT, 9, 12, 4, 5, 2, (G_GENO | G_SGROUP | 1),
  833.       { { AT_WEAP, AD_PHYS, 2, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  834.       75, 750, 0, MS_SILENT, MZ_HUGE,
  835.       M1_HUMANOID | M1_FIRE_RES | M1_COLLECT | M1_JEWELS,
  836.       M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY, C(YELLOW) },
  837.     { "frost giant", S_GIANT, 10, 12, 3, 10, -3, (G_GENO | G_SGROUP | 1),
  838.       { { AT_WEAP, AD_PHYS, 2, 12 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  839.       75, 750, 0, MS_SILENT, MZ_HUGE,
  840.       M1_HUMANOID | M1_COLD_RES | M1_COLLECT | M1_JEWELS,
  841.       M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY, C(WHITE) },
  842.     { "titan", S_GIANT, 16, 18, -3, 70, 9, 1,
  843.       { { AT_WEAP, AD_PHYS, 2, 8 }, { AT_MAGC, AD_SPEL, 0, 0 },
  844.         NO_ATTK, NO_ATTK, NO_ATTK },
  845.       90, 900, 0, MS_SILENT, MZ_HUGE, M1_FLY | M1_HUMANOID | M1_MAGIC |
  846.       M1_COLLECT, M2_STRONG | M2_ROCKTHROW | M2_NASTY, C(MAGENTA) },
  847.     { "minotaur", S_GIANT, 15, 15, 6, 0, 0, (G_GENO | G_NOGEN),
  848.       { { AT_CLAW, AD_PHYS, 3, 10 }, { AT_CLAW, AD_PHYS, 3, 10 },
  849.         { AT_BUTT, AD_PHYS, 2, 8}, NO_ATTK, NO_ATTK},
  850.       70, 700, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_HUMANOID,
  851.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE, C(BROWN) },
  852.     { "owlbear", S_GIANT, 5, 12, 5, 0, 0, (G_GENO | 3),
  853.       { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 },
  854.         { AT_HUGS, AD_PHYS, 2, 8 }, NO_ATTK, NO_ATTK },
  855.       70, 700, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_HUMANOID,
  856.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE, C(BROWN) },
  857. /*    Invisible stalker    */
  858.     { "stalker", S_STALKER, 8, 12, 3, 0, 0, (G_GENO | 3),
  859.       { { AT_CLAW, AD_PHYS, 4, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  860.       40, 400, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_FLY | M1_SEE_INVIS,
  861.       M2_WANDER | M2_STALK | M2_HOSTILE | M2_STRONG, C(WHITE) },
  862. /*    Jabberwock */
  863.     { "jabberwock", S_JABBERWOCK, 15, 12, -2, 50, 0, (G_GENO | 1),
  864.       { { AT_BITE, AD_PHYS, 2, 10 }, { AT_BITE, AD_PHYS, 2, 10 },
  865.         { AT_CLAW, AD_PHYS, 2, 10 }, { AT_CLAW, AD_PHYS, 2, 10 }, NO_ATTK },
  866.       60, 600, 0, MS_BURBLE, MZ_LARGE, M1_ANIMAL | M1_COLLECT | M1_FLY,
  867.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE, C(BRIGHT|RED) },
  868. /*    Kops    */
  869. #ifdef KOPS
  870.     { "Keystone Kop", S_KOP, 1, 6, 7, 10, 9, (G_GENO | G_LGROUP | G_NOGEN),
  871.       { { AT_WEAP, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  872.       45, 200, 0, MS_ARREST, MZ_HUMAN, M1_HUMANOID | M1_COLLECT,
  873.       M2_HUMAN | M2_WANDER | M2_HOSTILE, C(BLUE) },
  874.     { "Kop Sergeant", S_KOP, 2, 8, 6, 10, 10, (G_GENO | G_SGROUP | G_NOGEN),
  875.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  876.       45, 200, 0, MS_ARREST, MZ_HUMAN, M1_HUMANOID | M1_COLLECT,
  877.       M2_HUMAN | M2_WANDER | M2_HOSTILE | M2_STRONG, C(BLUE) },
  878.     { "Kop Lieutenant", S_KOP, 3, 10, 5, 20, 11, (G_GENO | G_NOGEN),
  879.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  880.       45, 200, 0, MS_ARREST, MZ_HUMAN, M1_HUMANOID | M1_COLLECT,
  881.       M2_HUMAN | M2_WANDER | M2_HOSTILE | M2_STRONG, C(CYAN) },
  882.     { "Kop Kaptain", S_KOP, 4, 12, 4, 20, 12, (G_GENO | G_NOGEN),
  883.       { { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  884.       45, 200, 0, MS_ARREST, MZ_HUMAN, M1_HUMANOID | M1_COLLECT,
  885.       M2_HUMAN | M2_WANDER | M2_HOSTILE | M2_STRONG, C(HI_LORD) },
  886. #endif
  887. /*    Liches     */
  888.     { "lich", S_LICH, 11, 6, 0, 30, -9, (G_GENO | 1),
  889.       { { AT_TUCH, AD_COLD, 1, 10 }, { AT_MAGC, AD_SPEL, 0, 0 },
  890.         NO_ATTK, NO_ATTK, NO_ATTK }, 30, 100, 0, MS_MUMBLE, MZ_HUMAN,
  891.       M1_HUMANOID | M1_POIS | M1_COLD_RES | M1_REGEN | M1_MAGIC,
  892.       M2_UNDEAD | M2_HOSTILE, C(BROWN) },
  893.     { "demilich", S_LICH, 14, 9, -2, 60, -12, (G_GENO | 1),
  894.       { { AT_TUCH, AD_COLD, 3, 4 }, { AT_MAGC, AD_SPEL, 0, 0 },
  895.         NO_ATTK, NO_ATTK, NO_ATTK }, 30, 100, 0, MS_MUMBLE, MZ_HUMAN,
  896.       M1_HUMANOID | M1_POIS | M1_COLD_RES | M1_REGEN | M1_MAGIC,
  897.       M2_UNDEAD | M2_HOSTILE, C(RED) },
  898.     { "master lich", S_LICH, 17, 9, -4, 90, -15, (G_HELL | G_GENO | 1),
  899.       { { AT_TUCH, AD_COLD, 3, 6 }, { AT_MAGC, AD_SPEL, 0, 0 },
  900.         NO_ATTK, NO_ATTK, NO_ATTK }, 30, 100, 0, MS_MUMBLE, MZ_HUMAN,
  901.       M1_HUMANOID | M1_POIS | M1_FIRE_RES | M1_COLD_RES | M1_REGEN |
  902.       M1_MAGIC, M2_UNDEAD | M2_HOSTILE, C(HI_LORD) },
  903. /*    Mummies     */
  904.     { "kobold mummy", S_MUMMY, 3, 8, 6, 20, -2, (G_GENO | G_NOCORPSE | 1),
  905.       { { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  906.       10, 100, 0, MS_SILENT, MZ_SMALL,
  907.       M1_HUMANOID | M1_POIS, M2_UNDEAD | M2_HOSTILE, C(BROWN) },
  908.     { "gnome mummy", S_MUMMY, 4, 10, 6, 20, -3, (G_GENO | G_NOCORPSE | 1),
  909.       { { AT_CLAW, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  910.       10, 100, 0, MS_SILENT, MZ_SMALL,
  911.       M1_HUMANOID | M1_POIS, M2_UNDEAD | M2_HOSTILE, C(RED) },
  912.     { "orc mummy", S_MUMMY, 5, 10, 5, 20, -4, (G_GENO | G_NOCORPSE | 1),
  913.       { { AT_CLAW, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  914.       15, 150, 0, MS_SILENT, MZ_HUMAN,
  915.       M1_HUMANOID | M1_POIS | M1_GREEDY | M1_JEWELS,
  916.       M2_UNDEAD | M2_HOSTILE | M2_ORC, C(GRAY) },
  917.     { "elf mummy", S_MUMMY, 6, 12, 4, 30, -5, (G_GENO | G_NOCORPSE | 1),
  918.       { { AT_CLAW, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  919.       35, 350, 0, MS_SILENT, MZ_HUMAN,
  920.       M1_HUMANOID | M1_POIS | M1_SLEE_RES,
  921.       M2_UNDEAD | M2_HOSTILE | M2_ELF, C(GREEN) },
  922.     { "human mummy", S_MUMMY, 6, 12, 4, 30, -5, (G_GENO | G_NOCORPSE | 1),
  923.       { { AT_CLAW, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 2, 4 },
  924.         NO_ATTK, NO_ATTK, NO_ATTK },
  925.       40, 400, 0, MS_SILENT, MZ_HUMAN,
  926.       M1_HUMANOID | M1_POIS, M2_UNDEAD | M2_HOSTILE, C(GRAY) },
  927.     { "ettin mummy", S_MUMMY, 7, 12, 4, 30, -6, (G_GENO | G_NOCORPSE | 1),
  928.       { { AT_CLAW, AD_PHYS, 2, 6 }, { AT_CLAW, AD_PHYS, 2, 6 },
  929.         NO_ATTK, NO_ATTK, NO_ATTK }, 50, 500, 0, MS_SILENT, MZ_HUGE,
  930.       M1_HUMANOID | M1_POIS,
  931.       M2_UNDEAD | M2_HOSTILE | M2_STRONG, C(BLUE) },
  932.     { "giant mummy", S_MUMMY, 8, 14, 3, 30, -7, (G_GENO | G_NOCORPSE | 1),
  933.       { { AT_CLAW, AD_PHYS, 3, 4 }, { AT_CLAW, AD_PHYS, 3, 4 },
  934.         NO_ATTK, NO_ATTK, NO_ATTK }, 75, 750, 0, MS_SILENT, MZ_HUGE,
  935.       M1_HUMANOID | M1_POIS | M1_JEWELS,
  936.       M2_UNDEAD | M2_HOSTILE | M2_GIANT | M2_STRONG, C(CYAN) },
  937. /*    Nagas    */
  938.     { "red naga hatchling", S_NAGA, 3, 10, 6, 0, 0, G_GENO,
  939.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  940.       20, 100, 0, MS_MUMBLE, MZ_LARGE,
  941.       M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_FIRE_RES | M1_POIS_RES,
  942.       M2_STRONG, C(RED) },
  943.     { "black naga hatchling", S_NAGA, 3, 10, 6, 0, 0, G_GENO,
  944.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  945.       20, 100, 0, MS_MUMBLE, MZ_LARGE,
  946.       M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_POIS_RES | M1_STON_RES,
  947.       M2_STRONG, C(BLACK) },
  948.     { "golden naga hatchling", S_NAGA, 3, 10, 6, 0, 0, G_GENO,
  949.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  950.       20, 100, 0, MS_MUMBLE, MZ_LARGE,
  951.       M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_POIS_RES,
  952.       M2_STRONG, C(HI_GOLD) },
  953.     { "guardian naga hatchling", S_NAGA, 3, 10, 6, 0, 0, G_GENO,
  954.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  955.       20, 100, 0, MS_MUMBLE, MZ_LARGE,
  956.       M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_POIS_RES,
  957.       M2_STRONG, C(GREEN) },
  958.     { "red naga", S_NAGA, 6, 12, 4, 0, -4, (G_GENO | 1),
  959.       { { AT_BITE, AD_PHYS, 2, 4 }, { AT_BREA, AD_FIRE, 2, 6 },
  960.         NO_ATTK, NO_ATTK, NO_ATTK }, 60, 400, 0, MS_MUMBLE, MZ_HUGE,
  961.       M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_POIS_RES | M1_FIRE_RES,
  962.       M2_STRONG | M2_EGGS, C(RED) },
  963.     { "black naga", S_NAGA, 8, 14, 2, 10, 4, (G_GENO | 1),
  964.       { { AT_BITE, AD_PHYS, 2, 6 }, { AT_SPIT, AD_ACID, 0, 0 },
  965.         NO_ATTK, NO_ATTK, NO_ATTK }, 60, 400, 0, MS_MUMBLE, MZ_HUGE,
  966.       M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_POIS_RES |
  967.       M1_ACID | M1_STON_RES,
  968.       M2_STRONG | M2_EGGS, C(BLACK) },
  969.     { "golden naga", S_NAGA, 10, 14, 2, 70, 5, (G_GENO | 1),
  970.       { { AT_BITE, AD_PHYS, 2, 6 }, { AT_MAGC, AD_SPEL, 4, 6 },
  971.         NO_ATTK, NO_ATTK, NO_ATTK }, 60, 400, 0, MS_MUMBLE, MZ_HUGE,
  972.       M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_POIS_RES,
  973.       M2_STRONG | M2_EGGS, C(HI_GOLD) },
  974.     { "guardian naga", S_NAGA, 12, 16, 0, 50, 7, (G_GENO | 1),
  975.       { { AT_BITE, AD_PLYS, 1, 6 }, { AT_HUGS, AD_PHYS, 2, 4 },
  976.         { AT_SPIT, AD_DRST, 1, 6 }, NO_ATTK, NO_ATTK },
  977.       60, 400, 0, MS_MUMBLE, MZ_HUGE,
  978.       M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_POIS_RES | M1_POIS,
  979.       M2_STRONG | M2_EGGS, C(GREEN) },
  980. /*    Ogres    */
  981.     { "ogre", S_OGRE, 5, 10, 5, 0, -3, (G_SGROUP | G_GENO | 1),
  982.       { { AT_WEAP, AD_PHYS, 2, 5 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  983.       60, 500, 0, MS_GRUNT, MZ_LARGE,
  984.       M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
  985.       M2_STRONG, C(BROWN) },
  986.     { "ogre lord", S_OGRE, 7, 12, 3, 30, -5, (G_GENO | 2),
  987.       { { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  988.       70, 700, 0, MS_GRUNT, MZ_LARGE,
  989.       M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
  990.       M2_STRONG | M2_LORD, C(RED) },
  991.     { "ogre king", S_OGRE, 7, 14, 4, 60, -7, (G_GENO | 2),
  992.       { { AT_WEAP, AD_PHYS, 3, 5 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  993.       70, 750, 0, MS_GRUNT, MZ_LARGE,
  994.       M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
  995.       M2_STRONG | M2_PRINCE, C(HI_LORD) },
  996. /*    Puddings */
  997.     { "gray ooze", S_PUDDING, 3, 1, 8, 0, 0, (G_GENO | 2),
  998.       { { AT_BITE, AD_RUST, 2, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  999.       50, 500, 0, MS_SILENT, MZ_MEDIUM,
  1000.       M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_POIS_RES,
  1001.       M2_HOSTILE | M2_OMNIVORE, C(GRAY) },
  1002.     { "brown pudding", S_PUDDING, 5, 3, 8, 0, 0, (G_GENO | 1),
  1003.       { { AT_BITE, AD_DCAY, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1004.       50, 500, 0, MS_SILENT, MZ_MEDIUM,
  1005.       M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_POIS_RES | M1_COLD_RES |
  1006.       M1_ELEC_RES, M2_HOSTILE | M2_OMNIVORE, C(BROWN) },
  1007.     { "black pudding", S_PUDDING, 10, 6, 6, 0, 0, (G_GENO | 1),
  1008.       { { AT_BITE, AD_RUST, 3, 8 }, { AT_NONE, AD_RUST, 0, 0 },
  1009.         NO_ATTK, NO_ATTK, NO_ATTK },
  1010.       50, 500, 0, MS_SILENT, MZ_LARGE,
  1011.       M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_POIS_RES | M1_COLD_RES |
  1012.       M1_ELEC_RES, M2_HOSTILE | M2_OMNIVORE, C(BLACK) },
  1013. /*    Quantum Mechanics    */
  1014.     { "quantum mechanic", S_QUANTMECH, 7, 12, 3, 10, 0, (G_GENO | 3),
  1015.       { { AT_CLAW, AD_TLPT, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1016.       2, 20, 0, MS_HUMANOID, MZ_HUMAN,
  1017.       M1_HUMANOID | M1_POIS | M1_TPORT, M2_HOSTILE, C(CYAN) },
  1018. /*    Rust Monster    */
  1019.     { "rust monster", S_RUSTMONST, 5, 18, 2, 0, 0, (G_GENO | 2),
  1020.       { { AT_TUCH, AD_RUST, 0, 0 }, { AT_TUCH, AD_RUST, 0, 0 },
  1021.         { AT_NONE, AD_RUST, 0, 0 }, NO_ATTK, NO_ATTK },
  1022.       50, 500, 0, MS_SILENT, MZ_MEDIUM,
  1023.       M1_SWIM | M1_ANIMAL | M1_NOHANDS, M2_HOSTILE | M2_METALLIVORE,
  1024.       C(BROWN) },
  1025. /*    Snakes    */
  1026.     { "garter snake", S_SNAKE, 1, 8, 8, 0, 0, (G_LGROUP | G_GENO | 1),
  1027.       { { AT_BITE, AD_PHYS, 1, 2 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1028.       5, 60, 0, MS_HISS, MZ_TINY,
  1029.       M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY,
  1030.       M2_CARNIVORE | M2_EGGS, C(GREEN) },
  1031.     { "snake", S_SNAKE, 4, 15, 3, 0, 0, (G_GENO | 2),
  1032.       { { AT_BITE, AD_DRST, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1033.       10, 80, 0, MS_HISS, MZ_SMALL,
  1034.       M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY |
  1035.       M1_POIS | M1_POIS_RES,
  1036.       M2_HOSTILE | M2_CARNIVORE | M2_EGGS, C(BROWN) },
  1037.     { "water moccasin", S_SNAKE, 4, 15, 3, 0, 0,
  1038.       (G_GENO | G_NOGEN | G_LGROUP),
  1039.       { { AT_BITE, AD_DRST, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1040.       10, 100, 0, MS_HISS, MZ_SMALL,
  1041.       M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY |
  1042.       M1_POIS | M1_POIS_RES,
  1043.       M2_HOSTILE | M2_CARNIVORE | M2_EGGS, C(RED) },
  1044.     { "pit viper", S_SNAKE, 6, 15, 2, 0, 0, (G_GENO | 1),
  1045.       { { AT_BITE, AD_DRST, 1, 4 }, { AT_BITE, AD_DRST, 1, 4 },
  1046.         NO_ATTK, NO_ATTK, NO_ATTK }, 5, 60, 0, MS_HISS, MZ_MEDIUM,
  1047.       M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY |
  1048.       M1_POIS | M1_POIS_RES,
  1049.       M2_HOSTILE | M2_CARNIVORE | M2_EGGS, C(BLUE) },
  1050.     { "cobra", S_SNAKE, 6, 18, 2, 0, 0, (G_GENO | 1),
  1051.       { { AT_BITE, AD_DRST, 2, 4 }, { AT_SPIT, AD_BLND, 0, 0 },
  1052.         NO_ATTK, NO_ATTK, NO_ATTK }, 15, 100, 0, MS_HISS, MZ_MEDIUM,
  1053.       M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY |
  1054.       M1_POIS | M1_POIS_RES,
  1055.       M2_HOSTILE | M2_CARNIVORE | M2_EGGS, C(BLUE) },
  1056.     { "python", S_SNAKE, 6, 3, 5, 0, 0, (G_GENO | 1),
  1057.       { { AT_BITE, AD_DRST, 1, 4 }, { AT_HUGS, AD_WRAP, 2, 4 },
  1058.         NO_ATTK, NO_ATTK, NO_ATTK }, 15, 100, 0, MS_HISS, MZ_LARGE,
  1059.       M1_SWIM | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY | M1_POIS | M1_POIS_RES,
  1060.       M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_EGGS, C(MAGENTA) },
  1061. /*    Trolls    */
  1062.     { "troll", S_TROLL, 7, 12, 4, 0, -3, (G_GENO | 2),
  1063.       { { AT_CLAW, AD_PHYS, 4, 2 }, { AT_CLAW, AD_PHYS, 4, 2 },
  1064.         { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK },
  1065.       40, 400, 0, MS_GRUNT, MZ_LARGE, M1_HUMANOID | M1_REGEN,
  1066.       M2_STRONG | M2_STALK | M2_CARNIVORE | M2_HOSTILE, C(BROWN) },
  1067.     { "ice troll", S_TROLL, 9, 10, 2, 20, -3, (G_GENO | 1),
  1068.       { { AT_CLAW, AD_PHYS, 2, 6 }, { AT_CLAW, AD_COLD, 2, 6 },
  1069.         { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK },
  1070.       40, 300, 0, MS_GRUNT, MZ_LARGE,
  1071.       M1_HUMANOID | M1_COLD_RES | M1_REGEN,
  1072.       M2_STRONG | M2_STALK | M2_CARNIVORE | M2_HOSTILE, C(WHITE) },
  1073.     { "rock troll", S_TROLL, 9, 12, 0, 0, -3, (G_GENO | 1),
  1074.       { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_WEAP, AD_PHYS, 3, 6 },
  1075.         { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK },
  1076.       40, 300, 0, MS_GRUNT, MZ_LARGE,
  1077.       M1_HUMANOID | M1_REGEN | M1_COLLECT,
  1078.       M2_STRONG | M2_STALK | M2_CARNIVORE | M2_HOSTILE, C(CYAN) },
  1079.     { "water troll", S_TROLL, 11, 14, 4, 40, -3, (G_NOGEN | G_GENO),
  1080.       { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_CLAW, AD_PHYS, 2, 8 },
  1081.         { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK },
  1082.       40, 400, 0, MS_GRUNT, MZ_LARGE,
  1083.       M1_SWIM | M1_HUMANOID | M1_REGEN,
  1084.       M2_STRONG | M2_STALK | M2_CARNIVORE | M2_HOSTILE, C(BLUE) },
  1085. #ifdef TOLKIEN
  1086.     { "Olog-hai", S_TROLL, 13, 12, -4, 0, -7, (G_GENO | 1),
  1087.       { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_WEAP, AD_PHYS, 3, 6 },
  1088.         { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK },
  1089.       40, 400, 0, MS_GRUNT, MZ_LARGE,
  1090.       M1_HUMANOID | M1_REGEN | M1_COLLECT,
  1091.       M2_STRONG | M2_STALK | M2_CARNIVORE | M2_HOSTILE, C(HI_LORD) },
  1092. #endif
  1093. /*    Umber Hulk    */
  1094.     { "umber hulk", S_UMBER, 9, 6, 2, 25, 0, (G_GENO | 2),
  1095.       { { AT_CLAW, AD_PHYS, 3, 4 }, { AT_CLAW, AD_PHYS, 3, 4 },
  1096.         { AT_BITE, AD_PHYS, 2, 5 }, { AT_GAZE, AD_CONF, 0, 0 }, NO_ATTK },
  1097.       50, 500, 0, MS_SILENT, MZ_LARGE,
  1098.       M1_TUNNEL, M2_STRONG | M2_CARNIVORE, C(BROWN) },
  1099. /*    Vampires    */
  1100.     { "vampire", S_VAMPIRE, 10, 12, 1, 25, -8, (G_GENO | 1),
  1101.       { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_BITE, AD_DRLI, 1, 6 },
  1102.         NO_ATTK, NO_ATTK, NO_ATTK }, 40, 400, 0, MS_VAMPIRE, MZ_HUMAN,
  1103.       M1_FLY | M1_HUMANOID | M1_POIS | M1_REGEN,
  1104.       M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY, C(RED) },
  1105.     { "vampire lord", S_VAMPIRE, 12, 14, 0, 50, -9, (G_GENO | 1),
  1106.       { { AT_CLAW, AD_PHYS, 1, 8 }, { AT_BITE, AD_DRLI, 1, 8 },
  1107.         NO_ATTK, NO_ATTK, NO_ATTK }, 40, 400, 0, MS_VAMPIRE, MZ_HUMAN,
  1108.       M1_FLY | M1_HUMANOID | M1_POIS | M1_REGEN,
  1109.       M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY | M2_LORD,
  1110.       C(BLUE) },
  1111.     { "Vlad the Impaler", S_VAMPIRE, 14, 18, -3, 80, -10,
  1112.       (G_NOGEN | G_NOCORPSE | G_UNIQ),
  1113.       { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_BITE, AD_DRLI, 1, 6 },
  1114.         NO_ATTK, NO_ATTK, NO_ATTK }, 40, 400, 0, MS_VAMPIRE, MZ_HUMAN,
  1115.       M1_NOPOLY | M1_FLY | M1_HUMANOID | M1_POIS | M1_REGEN,
  1116.       M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_PNAME | M2_STRONG | M2_NASTY |
  1117.       M2_PRINCE, C(HI_LORD) },
  1118. /*    Wraiths     */
  1119.     { "barrow wight", S_WRAITH, 3, 12, 5, 5, -3, (G_GENO | G_NOCORPSE | 1),
  1120.       { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_MAGC, AD_SPEL, 0, 0 },
  1121.         { AT_WEAP, AD_DRLI, 0, 0 }, NO_ATTK, NO_ATTK },
  1122.       30, 0, 0, MS_SILENT, MZ_HUMAN, M1_HUMANOID | M1_POIS_RES | M1_COLLECT,
  1123.       M2_UNDEAD | M2_STALK | M2_HOSTILE, C(GRAY) },
  1124.     { "wraith", S_WRAITH, 6, 12, 4, 15, -6, (G_GENO | 2),
  1125.       { { AT_TUCH, AD_DRLI, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1126.       30, 0, 0, MS_SILENT, MZ_HUMAN,
  1127.       M1_FLY | M1_HUMANOID | M1_POIS_RES,
  1128.       M2_UNDEAD | M2_STALK | M2_HOSTILE, C(BLACK) },
  1129. #ifdef TOLKIEN
  1130.     { "Nazgul", S_WRAITH, 13, 12, 0, 25, -17, (G_GENO | G_NOCORPSE | 1),
  1131.       { { AT_WEAP, AD_DRLI, 1, 4 }, { AT_BREA, AD_SLEE, 0, 0 },
  1132.         NO_ATTK, NO_ATTK, NO_ATTK }, 30, 0, 0, MS_SILENT, MZ_HUMAN,
  1133.       M1_HUMANOID | M1_POIS_RES | M1_COLLECT,
  1134.       M2_UNDEAD | M2_STALK | M2_STRONG | M2_HOSTILE, C(HI_LORD) },
  1135. #endif
  1136. /*    Xorn    */
  1137.     { "xorn", S_XORN, 8, 9,-2, 20, 0, (G_GENO | 1),
  1138.       { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  1139.         { AT_CLAW, AD_PHYS, 1, 3 }, { AT_BITE, AD_PHYS, 4, 6 },
  1140.         NO_ATTK }, 70, 700, 0, MS_SILENT, MZ_MEDIUM,
  1141.       M1_WALLWALK | M1_THICK_HIDE | M1_FIRE_RES | M1_COLD_RES |
  1142.       M1_STON_RES, M2_HOSTILE | M2_STRONG, C(BROWN) },
  1143. /*    Yeti    */
  1144.     { "yeti", S_YETI, 5, 15, 6, 0, 0, (G_GENO | 2),
  1145.       { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 },
  1146.         { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK },
  1147.       70, 700, 0, MS_GROWL, MZ_LARGE, M1_ANIMAL | M1_HUMANOID | M1_COLD_RES,
  1148.       M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(WHITE) },
  1149. /*    Zombies     */
  1150.     { "kobold zombie", S_ZOMBIE, 0, 6, 10, 0, -2, (G_GENO | G_NOCORPSE | 1),
  1151.       { { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1152.       10, 100, 0, MS_SILENT, MZ_SMALL, M1_HUMANOID | M1_POIS |
  1153.       M1_POIS_RES, M2_UNDEAD | M2_STALK | M2_HOSTILE, C(BROWN) },
  1154.     { "gnome zombie", S_ZOMBIE, 1, 6, 10, 0, -2, (G_GENO | G_NOCORPSE | 1),
  1155.       { { AT_CLAW, AD_PHYS, 1, 5 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1156.       10, 100, 0, MS_SILENT, MZ_SMALL, M1_HUMANOID | M1_POIS |
  1157.       M1_POIS_RES, M2_UNDEAD | M2_STALK | M2_HOSTILE, C(BROWN) },
  1158.     { "orc zombie", S_ZOMBIE, 2, 6, 9, 0, -3,
  1159.       (G_GENO | G_SGROUP | G_NOCORPSE | 1),
  1160.       { { AT_CLAW, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1161.       15, 150, 0, MS_SILENT, MZ_HUMAN,
  1162.       M1_HUMANOID | M1_POIS_RES | M1_GREEDY |
  1163.       M1_JEWELS, M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_ORC, C(GRAY) },
  1164.     { "elf zombie", S_ZOMBIE, 3, 6, 9, 0, -3,
  1165.       (G_GENO | G_SGROUP | G_NOCORPSE | 1),
  1166.       { { AT_CLAW, AD_PHYS, 1, 7 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1167.       35, 350, 0, MS_SILENT, MZ_HUMAN,
  1168.       M1_HUMANOID | M1_POIS_RES | M1_SLEE_RES,
  1169.       M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_ELF, C(GREEN) },
  1170.     { "human zombie", S_ZOMBIE, 4, 6, 8, 0, -3,
  1171.       (G_GENO | G_SGROUP | G_NOCORPSE | 1),
  1172.       { { AT_CLAW, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1173.       40, 400, 0, MS_SILENT, MZ_HUMAN,
  1174.       M1_HUMANOID | M1_POIS_RES,
  1175.       M2_UNDEAD | M2_STALK | M2_HOSTILE, C(HI_DOMESTIC) },
  1176.     { "ettin zombie", S_ZOMBIE, 6, 8, 6, 0, -4, (G_GENO | G_NOCORPSE | 1),
  1177.       { { AT_CLAW, AD_PHYS, 1, 10 }, { AT_CLAW, AD_PHYS, 1, 10 },
  1178.         NO_ATTK, NO_ATTK, NO_ATTK }, 50, 500, 0, MS_SILENT, MZ_HUGE,
  1179.       M1_HUMANOID | M1_POIS_RES,
  1180.       M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_STRONG, C(BLUE) },
  1181.     { "giant zombie", S_ZOMBIE, 8, 8, 6, 0, -4, (G_GENO | G_NOCORPSE | 1),
  1182.       { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_CLAW, AD_PHYS, 2, 8 },
  1183.         NO_ATTK, NO_ATTK, NO_ATTK }, 75, 750, 0, MS_SILENT, MZ_HUGE,
  1184.       M1_HUMANOID | M1_POIS_RES | M1_JEWELS,
  1185.       M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_GIANT | M2_STRONG, C(CYAN) },
  1186. /*    Golems    */
  1187. #ifdef GOLEMS
  1188.     { "straw golem", S_GOLEM, 3, 12, 10, 0, 0, (G_GENO | G_NOCORPSE | 1),
  1189.       { { AT_CLAW, AD_PHYS, 1, 2 }, { AT_CLAW, AD_PHYS, 1, 2 },
  1190.         NO_ATTK, NO_ATTK, NO_ATTK }, 10, 0, 0, MS_SILENT, MZ_LARGE,
  1191.       M1_HUMANOID | M1_POIS_RES, M2_HOSTILE, C(YELLOW) },
  1192.     { "rope golem", S_GOLEM, 4, 9, 8, 0, 0, (G_GENO | G_NOCORPSE | 1),
  1193.       { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_HUGS, AD_PHYS, 6, 1 },
  1194.         NO_ATTK, NO_ATTK, NO_ATTK }, 20, 0, 0, MS_SILENT, MZ_LARGE,
  1195.       M1_HUMANOID | M1_POIS_RES, M2_HOSTILE, C(BROWN) },
  1196.     { "leather golem", S_GOLEM, 6, 6, 6, 0, 0, (G_GENO | G_NOCORPSE | 1),
  1197.       { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 },
  1198.         NO_ATTK, NO_ATTK, NO_ATTK }, 40, 0, 0, MS_SILENT, MZ_LARGE,
  1199.       M1_HUMANOID | M1_POIS_RES, M2_HOSTILE, C(HI_LEATHER) },
  1200.     { "wood golem", S_GOLEM, 7, 3, 4, 0, 0, (G_GENO | G_NOCORPSE | 1),
  1201.       { { AT_CLAW, AD_PHYS, 3, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1202.       50, 0, 0, MS_SILENT, MZ_LARGE,
  1203.       M1_HUMANOID | M1_POIS_RES | M1_THICK_HIDE, M2_HOSTILE, C(HI_WOOD) },
  1204.     { "flesh golem", S_GOLEM, 9, 8, 9, 30, 0, (G_GENO | 1),
  1205.       { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_CLAW, AD_PHYS, 2, 8 },
  1206.         NO_ATTK, NO_ATTK, NO_ATTK},
  1207.       60, 600, 0, MS_SILENT, MZ_LARGE,
  1208.       M1_HUMANOID | M1_POIS_RES | M1_FIRE_RES | M1_COLD_RES | M1_ELEC_RES,
  1209.       M2_HOSTILE | M2_STRONG, C(RED) },
  1210.     { "clay golem", S_GOLEM, 11, 7, 7, 40, 0, (G_GENO | G_NOCORPSE | 1),
  1211.       { { AT_CLAW, AD_PHYS, 3, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1212.       75, 0, 0, MS_SILENT, MZ_LARGE,
  1213.       M1_HUMANOID | M1_POIS_RES | M1_THICK_HIDE,
  1214.       M2_HOSTILE | M2_STRONG, C(BROWN) },
  1215.     { "stone golem", S_GOLEM, 14, 6, 5, 50, 0, (G_GENO | G_NOCORPSE | 1),
  1216.       { { AT_CLAW, AD_PHYS, 3, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1217.       90, 0, 0, MS_SILENT, MZ_LARGE,
  1218.       M1_HUMANOID | M1_POIS_RES | M1_THICK_HIDE | M1_STON_RES,
  1219.       M2_HOSTILE | M2_STRONG, C(GRAY) },
  1220.     { "iron golem", S_GOLEM, 18, 6, 3, 60, 0, (G_GENO | G_NOCORPSE | 1),
  1221.       { { AT_WEAP, AD_PHYS, 4, 10 }, { AT_BREA, AD_DRST, 4, 6 },
  1222.         NO_ATTK, NO_ATTK, NO_ATTK },
  1223.       100, 0, 0, MS_SILENT, MZ_LARGE,
  1224.       M1_HUMANOID | M1_THICK_HIDE | M1_POIS | M1_FIRE_RES | M1_COLD_RES |
  1225.       M1_ELEC_RES | M1_COLLECT,
  1226.       M2_HOSTILE | M2_STRONG, C(HI_METAL) },
  1227. #endif /* GOLEMS */
  1228. /*    Humans        */
  1229.     { "human", S_HUMAN, 0, 12, 10, 0, 0, G_NOGEN, /* for corpses */
  1230.       { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1231.       45, 400, 0, MS_HUMANOID, MZ_HUMAN,
  1232.       M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
  1233.       M2_HUMAN | M2_PEACEFUL | M2_STRONG, C(HI_DOMESTIC) },
  1234.     { "wererat", S_HUMAN, 2, 12, 7, 10, -7, 1,
  1235.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1236.       45, 400, 0, MS_SILENT, MZ_HUMAN,
  1237.       M1_NOPOLY | M1_HUMANOID | M1_POIS | M1_REGEN | M1_COLLECT,
  1238.       M2_WERE | M2_HOSTILE | M2_HUMAN, C(BROWN) },
  1239.     { "werejackal", S_HUMAN, 2, 12, 7, 10, -7, 1,
  1240.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1241.       45, 400, 0, MS_BARK, MZ_HUMAN,
  1242.       M1_NOPOLY | M1_HUMANOID | M1_POIS | M1_REGEN | M1_COLLECT,
  1243.       M2_WERE | M2_HOSTILE | M2_HUMAN, C(RED) },
  1244.     { "werewolf", S_HUMAN, 5, 12, 6, 20, -7, 1,
  1245.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1246.       45, 400, 0, MS_BARK, MZ_HUMAN,
  1247.       M1_NOPOLY | M1_HUMANOID | M1_POIS | M1_REGEN | M1_COLLECT,
  1248.       M2_WERE | M2_HOSTILE | M2_HUMAN, C(ORANGE_COLORED) },
  1249. #ifdef TOLKIEN
  1250.     { "Woodland-elf", S_HUMAN, 4, 12, 5, 10, 5, (G_GENO | G_SGROUP | 2),
  1251.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1252.       35, 350, 0, MS_HUMANOID, MZ_HUMAN, M1_HUMANOID |
  1253.       M1_COLLECT | M1_SLEE_RES, M2_ELF, C(GREEN) },
  1254.     { "Green-elf", S_HUMAN, 5, 12, 5, 10, 6, (G_GENO | G_SGROUP | 2),
  1255.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1256.       35, 350, 0, MS_HUMANOID, MZ_HUMAN, M1_HUMANOID |
  1257.       M1_COLLECT | M1_SLEE_RES, M2_ELF, C(GREEN+BRIGHT) },
  1258.     { "Grey-elf", S_HUMAN, 6, 12, 5, 10, 7, (G_GENO | G_SGROUP | 2),
  1259.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1260.       35, 350, 0, MS_HUMANOID, MZ_HUMAN, M1_HUMANOID |
  1261.       M1_COLLECT | M1_SLEE_RES, M2_ELF, C(GRAY) },
  1262. #endif
  1263.     { "elf-lord", S_HUMAN, 8, 12, 5, 20, 9, (G_GENO | G_SGROUP | 2),
  1264.       { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
  1265.         NO_ATTK, NO_ATTK, NO_ATTK },
  1266.       35, 350, 0, MS_HUMANOID, MZ_HUMAN, M1_HUMANOID |
  1267.       M1_COLLECT | M1_SLEE_RES, M2_ELF | M2_STRONG | M2_LORD, C(BLUE+BRIGHT) },
  1268.     { "Elvenking", S_HUMAN, 9, 12, 5, 25, 10, (G_GENO | 1),
  1269.       { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4},
  1270.         NO_ATTK, NO_ATTK, NO_ATTK },
  1271.       35, 350, 0, MS_HUMANOID, MZ_HUMAN,
  1272.       M1_HUMANOID | M1_COLLECT | M1_SLEE_RES,
  1273.       M2_ELF | M2_STRONG | M2_PRINCE, C(HI_LORD) },
  1274.     { "nurse", S_HUMAN, 11, 6, 0, 0, 0, (G_GENO | 3),
  1275.       { { AT_CLAW, AD_HEAL, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1276.       45, 400, 0, MS_NURSE, MZ_HUMAN, M1_NOPOLY | M1_HUMANOID | M1_POIS_RES,
  1277.       M2_HUMAN | M2_HOSTILE, C(HI_DOMESTIC) },
  1278.     { "shopkeeper", S_HUMAN, 12, 18, 0, 50, 0, G_NOGEN,
  1279.       { { AT_WEAP, AD_PHYS, 4, 4 }, { AT_WEAP, AD_PHYS, 4, 4 }, NO_ATTK,
  1280.         NO_ATTK, NO_ATTK }, 45, 400, sizeof(struct eshk), MS_SELL, MZ_HUMAN,
  1281.       M1_NOPOLY | M1_HUMANOID | M1_MAGIC | M1_COLLECT,
  1282.       M2_HUMAN | M2_PEACEFUL | M2_STRONG, C(HI_DOMESTIC) },
  1283.     { "guard", S_HUMAN, 12, 12, -1, 40, 10, G_NOGEN,
  1284.       { { AT_WEAP, AD_PHYS, 4, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1285.       45, 400, sizeof(struct egd), MS_GUARD, MZ_HUMAN,
  1286.       M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
  1287.       M2_HUMAN | M2_MERC | M2_PEACEFUL | M2_STRONG, C(BLUE) },
  1288. #ifdef ORACLE
  1289.     { "oracle", S_HUMAN, 12, 0, 0, 50, 0, G_NOGEN | G_UNIQ,
  1290.       { { AT_NONE, AD_MAGM, 0, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1291.       45, 400, 0, MS_ORACLE, MZ_HUMAN, M1_NOPOLY | M1_HUMANOID,
  1292.       M2_HUMAN | M2_PEACEFUL | M2_FEM, C(HI_ZAP) },
  1293. #endif
  1294. #if defined(ALTARS) && defined(THEOLOGY)
  1295.     { "temple priest", S_HUMAN, 12, 12, 0, 50, 1, G_NOGEN,
  1296.       { { AT_WEAP, AD_PHYS, 4, 10 }, { AT_KICK, AD_PHYS, 1, 4 },
  1297.         { AT_MAGC, AD_CLRC, 0, 0 }, NO_ATTK, NO_ATTK },
  1298.       45, 400, sizeof(struct epri), MS_PRIEST, MZ_HUMAN,
  1299.       M1_NOPOLY | M1_HUMANOID | M1_ELEC_RES | M1_COLLECT,
  1300.       M2_HUMAN | M2_PEACEFUL, C(WHITE) },
  1301.     { "temple priestess", S_HUMAN, 12, 12, 0, 50, 1, G_NOGEN,
  1302.       { { AT_WEAP, AD_PHYS, 4, 10 }, { AT_KICK, AD_PHYS, 1, 4 },
  1303.         { AT_MAGC, AD_CLRC, 0, 0 }, NO_ATTK, NO_ATTK },
  1304.       45, 400, sizeof(struct epri), MS_PRIEST, MZ_HUMAN,
  1305.       M1_NOPOLY | M1_HUMANOID | M1_ELEC_RES | M1_COLLECT,
  1306.       M2_HUMAN | M2_PEACEFUL | M2_FEM, C(WHITE) },
  1307. #endif
  1308. #ifdef ARMY
  1309.     { "unarmored soldier", S_HUMAN, 6, 4, 10, 0, -2, G_NOGEN,
  1310.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1311.       45, 400, 0, MS_SOLDIER, MZ_HUMAN,
  1312.       M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
  1313.       M2_HUMAN | M2_MERC | M2_STALK | M2_HOSTILE | M2_STRONG, C(BROWN) },
  1314.     { "soldier", S_HUMAN, 6, 4, 3, 0, -2, (G_SGROUP | G_GENO | 1),
  1315.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1316.       45, 400, 0, MS_SOLDIER, MZ_HUMAN,
  1317.       M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
  1318.       M2_HUMAN | M2_MERC | M2_STALK | M2_HOSTILE | M2_STRONG, C(GRAY) },
  1319.     { "sergeant", S_HUMAN, 8, 4, 0, 5, -3, (G_SGROUP | G_GENO | 1),
  1320.       { { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1321.       45, 400, 0, MS_SOLDIER, MZ_HUMAN,
  1322.       M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
  1323.       M2_HUMAN | M2_MERC | M2_STALK | M2_HOSTILE | M2_STRONG, C(RED) },
  1324.     { "lieutenant", S_HUMAN, 10, 4, -2, 15, -4, (G_GENO | 1),
  1325.       { { AT_WEAP, AD_PHYS, 3, 4 }, { AT_WEAP, AD_PHYS, 3, 4 },
  1326.         NO_ATTK, NO_ATTK, NO_ATTK }, 45, 400, 0, MS_SOLDIER, MZ_HUMAN,
  1327.       M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
  1328.       M2_HUMAN | M2_MERC | M2_STALK | M2_HOSTILE | M2_STRONG, C(GREEN) },
  1329.     { "captain", S_HUMAN, 12, 4, -3, 15, -5, (G_GENO | 1),
  1330.       { { AT_WEAP, AD_PHYS, 4, 4 }, { AT_WEAP, AD_PHYS, 4, 4 },
  1331.         NO_ATTK, NO_ATTK, NO_ATTK }, 45, 400, 0, MS_SOLDIER, MZ_HUMAN,
  1332.       M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
  1333.       M2_HUMAN | M2_MERC | M2_STALK | M2_HOSTILE | M2_STRONG, C(BLUE) },
  1334. #endif
  1335. #ifdef MEDUSA
  1336.     { "Medusa", S_HUMAN, 20, 12, 2, 50, -15, G_NOGEN | G_UNIQ,
  1337.       { { AT_CLAW, AD_PHYS, 1, 8 }, { AT_GAZE, AD_STON, 0, 0 },
  1338.         { AT_BITE, AD_DRST, 1, 6 }, { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK },
  1339.       45, 400, 0, MS_HISS, MZ_LARGE,
  1340.       M1_NOPOLY | M1_HUMANOID | M1_SLITHY | M1_POIS | M1_POIS_RES |
  1341.       M1_STON_RES, M2_HOSTILE | M2_STRONG | M2_PNAME | M2_FEM,
  1342.       C(BRIGHT|GREEN) },
  1343. #endif
  1344.     { "Wizard of Yendor", S_HUMAN, 30, 12, -8, 100, -20, G_NOGEN,
  1345.       { { AT_CLAW, AD_SAMU, 2, 12 }, { AT_MAGC, AD_SPEL, 0, 0 },
  1346.         NO_ATTK, NO_ATTK, NO_ATTK }, 45, 400, 0, MS_CUSS, MZ_HUMAN,
  1347.       M1_NOPOLY | M1_FLY | M1_HUMANOID | M1_POIS_RES | M1_FIRE_RES |
  1348.       M1_REGEN | M1_SEE_INVIS | M1_TPORT | M1_TPORT_CONTROL | M1_MAGIC,
  1349.       M2_HUMAN | M2_PNAME | M2_HOSTILE | M2_STRONG | M2_NASTY | M2_PRINCE,
  1350.       C(HI_LORD) },
  1351. #ifdef CHARON
  1352.     { "Charon", S_HUMAN, 76, 18, -5, 120, 0,
  1353.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  1354.       { { AT_WEAP, AD_PHYS, 1, 8 }, { AT_TUCH, AD_PLYS, 1, 8 },
  1355.         NO_ATTK, NO_ATTK, NO_ATTK }, 45, 400, 0, MS_FERRY, MZ_HUMAN,
  1356.       M1_NOPOLY | M1_SEE_INVIS | M1_HUMANOID | M1_POIS_RES | M1_FIRE_RES |
  1357.       M1_GREEDY | M1_COLLECT, M2_HUMAN | M2_PEACEFUL | M2_PNAME,
  1358.       C(WHITE) },
  1359. #endif
  1360. /*    Ghost        */
  1361.     { "ghost", S_GHOST, 10, 3, -5, 50, -5, (G_NOCORPSE | G_NOGEN),
  1362.       { { AT_TUCH, AD_PHYS, 1, 1 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1363.       45, 0, PL_NSIZ, MS_SILENT, MZ_HUMAN,
  1364.       M1_NOPOLY | M1_FLY | M1_WALLWALK | M1_HUMANOID | M1_POIS_RES,
  1365.       M2_UNDEAD | M2_STALK | M2_HOSTILE, C(GRAY) },
  1366. /*    (major) Demons    */
  1367.     { "water demon", S_DEMON, 8, 12,-4, 30, -7, (G_NOCORPSE | G_NOGEN),
  1368.       { { AT_WEAP, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  1369.         { AT_BITE, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK },
  1370.       45, 450, 0, MS_SILENT, MZ_HUMAN,
  1371.       M1_SWIM | M1_HUMANOID | M1_POIS | M1_FIRE_RES | M1_COLLECT,
  1372.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, C(BLUE) },
  1373. #ifndef INFERNO /* generic type */
  1374.     { "demon", S_DEMON, 10, 12,-4, 30, -7, (G_NOCORPSE | 3),
  1375.       { { AT_WEAP, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  1376.         { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK },
  1377.       45, 450, 0, MS_CUSS, MZ_HUMAN,
  1378.       M1_HUMANOID | M1_POIS | M1_FIRE_RES | M1_COLLECT,
  1379.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, C(RED) },
  1380. #else    /* used in hell for bigger, badder demons! */
  1381.     /* standard demons & devils */
  1382.     { "horned devil", S_DEMON, 6, 9, -5, 50, 11, (G_HELL | G_NOCORPSE | 2),
  1383.       { { AT_WEAP, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  1384.         { AT_BITE, AD_PHYS, 2, 3 }, { AT_STNG, AD_PHYS, 1, 3 }, NO_ATTK },
  1385.       45, 450, 0, MS_SILENT, MZ_HUMAN,
  1386.       M1_POIS | M1_FIRE_RES | M1_THICK_HIDE,
  1387.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, C(BROWN) },
  1388. #ifdef SEDUCE
  1389.     { "succubus", S_DEMON, 6, 12, 0, 70, -9, (G_NOCORPSE | 1),
  1390.       { { AT_BITE, AD_SSEX, 0, 0 }, { AT_CLAW, AD_PHYS, 1, 3 },
  1391.         { AT_CLAW, AD_PHYS, 1, 3 }, NO_ATTK },
  1392.       45, 450, 0, MS_SEDUCE, MZ_HUMAN,
  1393.       M1_HUMANOID | M1_FLY | M1_POIS | M1_FIRE_RES,
  1394.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_FEM, C(GRAY) },
  1395.     { "incubus", S_DEMON, 6, 12, 0, 70, -9, (G_NOCORPSE | 1),
  1396.       { { AT_BITE, AD_SSEX, 0, 0 }, { AT_CLAW, AD_PHYS, 1, 3 },
  1397.         { AT_CLAW, AD_PHYS, 1, 3 }, NO_ATTK },
  1398.       45, 450, 0, MS_SEDUCE, MZ_HUMAN,
  1399.       M1_HUMANOID | M1_FLY | M1_POIS | M1_FIRE_RES,
  1400.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, C(GRAY) },
  1401. #else
  1402.     { "succubus", S_DEMON, 6, 12, 0, 70, -9, (G_NOCORPSE | 1),
  1403.       { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  1404.         { AT_BITE, AD_DRLI, 2, 6 }, NO_ATTK },
  1405.       45, 450, 0, MS_SEDUCE, MZ_HUMAN,
  1406.       M1_HUMANOID | M1_FLY | M1_POIS | M1_FIRE_RES,
  1407.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_FEM, C(GRAY) },
  1408.     { "incubus", S_DEMON, 6, 12, 0, 70, -9, (G_NOCORPSE | 1),
  1409.       { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  1410.         { AT_BITE, AD_DRLI, 2, 6 }, NO_ATTK },
  1411.       45, 450, 0, MS_SEDUCE, MZ_HUMAN,
  1412.       M1_HUMANOID | M1_FLY | M1_POIS | M1_FIRE_RES,
  1413.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, C(GRAY) },
  1414. #endif
  1415.     { "erinyes", S_DEMON, 7, 12, 2, 30, 10,
  1416.       (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  1417.       { { AT_WEAP, AD_DRST, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1418.       45, 450, 0, MS_SILENT, MZ_HUMAN,
  1419.       M1_HUMANOID | M1_POIS | M1_FIRE_RES | M1_COLLECT,
  1420.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY | M2_FEM,
  1421.       C(RED) },
  1422.     { "marilith", S_DEMON, 7, 12, -6, 80, -12, (G_HELL | G_NOCORPSE | 1),
  1423.       { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
  1424.         { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
  1425.         { AT_WEAP, AD_PHYS, 2, 4 }, }, 45, 450, 0, MS_CUSS, MZ_LARGE,
  1426.       M1_HUMANOID | M1_SEE_INVIS | M1_POIS | M1_FIRE_RES | M1_COLLECT |
  1427.       M1_SLITHY,
  1428.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_FEM, C(RED) },
  1429.     { "barbed devil", S_DEMON, 8, 12, 0, 35, 8,
  1430.       (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  1431.       { { AT_CLAW, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 2, 4 },
  1432.         { AT_STNG, AD_PHYS, 3, 4 }, NO_ATTK, NO_ATTK },
  1433.       45, 450, 0, MS_SILENT, MZ_HUMAN,
  1434.       M1_POIS | M1_FIRE_RES | M1_THICK_HIDE,
  1435.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, C(RED) },
  1436.     { "vrock", S_DEMON, 8, 12, 0, 50, -9,
  1437.       (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  1438.       { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  1439.         { AT_CLAW, AD_PHYS, 1, 8 }, { AT_CLAW, AD_PHYS, 1, 8 },
  1440.         { AT_BITE, AD_PHYS, 1, 6 }, },
  1441.       45, 450, 0, MS_SILENT, MZ_LARGE, M1_POIS | M1_FIRE_RES,
  1442.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, C(RED) },
  1443.     { "hezrou", S_DEMON, 9, 6, -2, 55, -10,
  1444.       (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  1445.       { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  1446.         { AT_BITE, AD_PHYS, 4, 4 }, NO_ATTK, NO_ATTK }, 45, 450, 0,
  1447.       MS_SILENT, MZ_LARGE, M1_HUMANOID | M1_POIS | M1_FIRE_RES,
  1448.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, C(RED) },
  1449.     { "bone devil", S_DEMON, 9, 15, -1, 40, -9,
  1450.       (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  1451.       { { AT_WEAP, AD_PHYS, 3, 4 }, { AT_STNG, AD_DRST, 2, 4 },
  1452.         NO_ATTK, NO_ATTK, NO_ATTK }, 45, 450, 0, MS_SILENT, MZ_LARGE,
  1453.       M1_POIS | M1_FIRE_RES | M1_COLLECT,
  1454.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, C(GRAY) },
  1455.     { "nalfeshnee", S_DEMON, 11, 9, -1, 65, -11, (G_HELL | G_NOCORPSE | 1),
  1456.       { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  1457.         { AT_BITE, AD_PHYS, 2, 4 }, { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK },
  1458.       45, 450, 0, MS_SILENT, MZ_LARGE,
  1459.       M1_HUMANOID | M1_POIS | M1_FIRE_RES,
  1460.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, C(RED) },
  1461.     { "ice devil", S_DEMON, 11, 6, -4, 55, -12, (G_HELL | G_NOCORPSE | 2),
  1462.       { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  1463.         { AT_BITE, AD_PHYS, 2, 4 }, { AT_STNG, AD_COLD, 3, 4 }, NO_ATTK },
  1464.       45, 450, 0, MS_SILENT, MZ_LARGE,
  1465.       M1_SEE_INVIS | M1_POIS | M1_FIRE_RES | M1_COLD_RES,
  1466.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, C(WHITE) },
  1467.     { "pit fiend", S_DEMON, 13, 6, -3, 65, -13, (G_HELL | G_NOCORPSE | 2),
  1468.       { { AT_WEAP, AD_PHYS, 4, 2 }, { AT_WEAP, AD_PHYS, 4, 2 },
  1469.         { AT_HUGS, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK },
  1470.       45, 450, 0, MS_GROWL, MZ_LARGE,
  1471.       M1_SEE_INVIS | M1_POIS | M1_FIRE_RES | M1_COLLECT,
  1472.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, C(RED) },
  1473.     { "balrog", S_DEMON, 16, 5, -2, 75, -14, (G_HELL | G_NOCORPSE | 1),
  1474.       { { AT_WEAP, AD_PHYS, 8, 4 }, { AT_WEAP, AD_PHYS, 4, 6 },
  1475.         NO_ATTK, NO_ATTK, NO_ATTK }, 45, 450, 0, MS_SILENT, MZ_LARGE,
  1476.       M1_FLY | M1_SEE_INVIS | M1_COLLECT | M1_POIS | M1_FIRE_RES,
  1477.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY, C(RED) },
  1478.     /* Named demon lords & princes plus Arch-Devils */
  1479.     { "Juiblex", S_DEMON, 50, 3, -7, 65, -15,
  1480.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  1481.       { { AT_ENGL, AD_DISE, 4, 10 }, { AT_SPIT, AD_ACID, 3, 6 },
  1482.         NO_ATTK, NO_ATTK, NO_ATTK }, 50, 250, 0, MS_GURGLE, MZ_LARGE,
  1483.       M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_ACID | M1_POIS | M1_FIRE_RES |
  1484.       M1_AMORPHOUS,
  1485.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY | M2_LORD,
  1486.       C(BRIGHT|GREEN) },
  1487.     { "Yeenoghu", S_DEMON, 56, 18, -5, 80, -15,
  1488.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  1489.       { { AT_WEAP, AD_PHYS, 3, 6 }, { AT_WEAP, AD_CONF, 2, 8 },
  1490.         { AT_WEAP, AD_PLYS, 1, 6 }, { AT_MAGC, AD_MAGM, 2, 6 }, NO_ATTK },
  1491.       50, 500, 0, MS_ORC, MZ_LARGE,
  1492.       M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_POIS | M1_FIRE_RES |
  1493.       M1_COLLECT,
  1494.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY | M2_LORD,
  1495.       C(HI_LORD) },
  1496.     { "Orcus", S_DEMON, 66, 9, -6, 85, -20,
  1497.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  1498.       { { AT_MAGC, AD_SPEL, 8, 6 }, { AT_WEAP, AD_PHYS, 3, 6 },
  1499.         { AT_CLAW, AD_PHYS, 3, 4 }, { AT_CLAW, AD_PHYS, 3, 4 },
  1500.         { AT_STNG, AD_DRST, 2, 4 }, }, 50, 500, 0, MS_ORC, MZ_HUGE,
  1501.       M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_POIS | M1_FIRE_RES |
  1502.       M1_COLLECT,
  1503.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY | M2_PRINCE,
  1504.       C(HI_LORD) },
  1505.     { "Geryon", S_DEMON, 72, 3, -3, 75, 15,
  1506.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  1507.       { { AT_CLAW, AD_PHYS, 3, 6 }, { AT_CLAW, AD_PHYS, 3, 6 },
  1508.         { AT_STNG, AD_DRST, 2, 4 }, NO_ATTK, NO_ATTK },
  1509.       50, 500, 0, MS_BRIBE, MZ_HUGE,
  1510.       M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_POIS | M1_FIRE_RES |
  1511.       M1_SLITHY,
  1512.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY | M2_PRINCE, C(HI_LORD) },
  1513.     { "Dispater", S_DEMON, 78, 15, -2, 80, 15,
  1514.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  1515.       { { AT_WEAP, AD_PHYS, 4, 6 }, { AT_MAGC, AD_SPEL, 6, 6 },
  1516.         NO_ATTK, NO_ATTK, NO_ATTK }, 50, 500, 0, MS_BRIBE, MZ_HUMAN,
  1517.       M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_POIS | M1_FIRE_RES |
  1518.       M1_HUMANOID | M1_COLLECT,
  1519.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY | M2_PRINCE, C(HI_LORD) },
  1520.     { "Baalzebub", S_DEMON, 89, 9, -5, 85, 20,
  1521.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  1522.       { { AT_BITE, AD_DRST, 2, 6 }, { AT_GAZE, AD_STUN, 2, 6 },
  1523.         NO_ATTK, NO_ATTK, NO_ATTK }, 50, 500, 0, MS_BRIBE, MZ_LARGE,
  1524.       M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_POIS | M1_FIRE_RES,
  1525.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY | M2_PRINCE,
  1526.       C(HI_LORD) },
  1527.     { "Asmodeus", S_DEMON, 105, 12, -7, 90, 20,
  1528.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  1529.       { { AT_CLAW, AD_PHYS, 4, 4 }, { AT_MAGC, AD_COLD, 6, 6 },
  1530.         NO_ATTK, NO_ATTK, NO_ATTK }, 50, 500, 0, MS_BRIBE, MZ_HUGE,
  1531.       M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_HUMANOID | M1_POIS |
  1532.       M1_FIRE_RES | M1_COLD_RES,
  1533.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_STRONG | M2_NASTY |
  1534.       M2_PRINCE, C(HI_LORD) },
  1535.     { "Demogorgon", S_DEMON, 106, 15, -8, 95, -20,
  1536.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  1537.       { { AT_MAGC, AD_SPEL, 8, 6 }, { AT_STNG, AD_DRLI, 1, 4 },
  1538.         { AT_CLAW, AD_DISE, 1, 6 }, { AT_CLAW, AD_DISE, 1, 6 },
  1539.         NO_ATTK }, 50, 500, 0, MS_GROWL, MZ_HUGE,
  1540.       M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_NOHANDS | M1_POIS |
  1541.       M1_FIRE_RES,
  1542.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY | M2_PRINCE,
  1543.       C(HI_LORD) },
  1544. #endif
  1545. #ifdef MAIL
  1546.     { "mail daemon", S_DEMON, 56, 24, 10, 127, 0, (G_NOGEN | G_NOCORPSE),
  1547.       { NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0,
  1548.       MS_SILENT, MZ_HUMAN, M1_NOPOLY | M1_FLY | M1_SWIM | M1_SEE_INVIS |
  1549.       M1_HUMANOID | M1_POIS | M1_FIRE_RES | M1_COLD_RES | M1_SLEE_RES,
  1550.       M2_STALK | M2_PEACEFUL, C(BRIGHT|BLUE) },
  1551. /* Neither rain nor sleet nor gloom of night shall stay this courier... */
  1552. #endif
  1553.     { "djinni", S_DEMON, 7, 12, 4, 30, 0, (G_NOGEN | G_NOCORPSE),
  1554.       { { AT_WEAP, AD_PHYS, 2, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1555.       40, 400, 0, MS_DJINNI, MZ_HUMAN,
  1556.       M1_NOPOLY | M1_HUMANOID | M1_FLY | M1_POIS | M1_COLLECT, M2_STALK,
  1557.       C(YELLOW) },
  1558. /*    sea monsters        */
  1559.     { "giant eel", S_EEL, 5, 9, -1, 0, 0, (G_GENO | G_NOGEN),
  1560.       { { AT_BITE, AD_PHYS, 3, 6 }, { AT_TUCH, AD_WRAP, 0, 0 },
  1561.         NO_ATTK, NO_ATTK, NO_ATTK }, 10, 250, 0, MS_SILENT, MZ_HUGE,
  1562.       M1_SWIM | M1_ANIMAL | M1_SLITHY | M1_NOLIMBS | M1_NOPOLY,
  1563.       M2_HOSTILE | M2_CARNIVORE | M2_EGGS, C(CYAN) },
  1564.     { "electric eel", S_EEL, 7, 10, -3, 0, 0, (G_GENO | G_NOGEN),
  1565.       { { AT_BITE, AD_ELEC, 4, 6 }, { AT_TUCH, AD_WRAP, 0, 0 },
  1566.       NO_ATTK, NO_ATTK, NO_ATTK }, 10, 250, 0, MS_SILENT, MZ_HUGE,
  1567.       M1_SWIM | M1_ANIMAL | M1_SLITHY | M1_NOLIMBS | M1_NOPOLY |
  1568.       M1_ELEC_RES, M2_HOSTILE | M2_CARNIVORE | M2_EGGS, C(BLUE) },
  1569.     { "kraken", S_EEL, 20, 3, 6, 0, -3, (G_GENO | G_NOGEN),
  1570.       { { AT_CLAW, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 2, 4 },
  1571.         { AT_HUGS, AD_WRAP, 2, 6 }, { AT_BITE, AD_PHYS, 5, 4 }, NO_ATTK },
  1572.       100, 1000, 0, MS_SILENT, MZ_HUGE,
  1573.       M1_SWIM | M1_ANIMAL | M1_NOHANDS | M1_NOPOLY,
  1574.       M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(RED) },
  1575. /*    lizards     */
  1576.     { "newt", S_LIZARD, 0, 6, 8, 0, 0, (G_GENO | 5),
  1577.       { { AT_BITE, AD_PHYS, 1, 2 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1578.       2, 20, 0, MS_SILENT, MZ_TINY, M1_SWIM | M1_ANIMAL | M1_NOHANDS,
  1579.       M2_HOSTILE | M2_CARNIVORE, C(YELLOW) },
  1580.     { "gecko", S_LIZARD, 1, 6, 8, 0, 0, (G_GENO | 5),
  1581.       { { AT_BITE, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1582.       2, 20, 0, MS_SQEEK, MZ_TINY, M1_ANIMAL | M1_NOHANDS,
  1583.       M2_HOSTILE | M2_CARNIVORE, C(GREEN) },
  1584.     { "iguana", S_LIZARD, 2, 6, 7, 0, 0, (G_GENO | 5),
  1585.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1586.       3, 30, 0, MS_SILENT, MZ_TINY, M1_ANIMAL | M1_NOHANDS,
  1587.       M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  1588.     { "baby crocodile", S_LIZARD, 3, 6, 7, 0, 0, G_GENO,
  1589.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1590.       20, 200, 0, MS_SILENT, MZ_MEDIUM, M1_ANIMAL | M1_NOHANDS | M1_SWIM,
  1591.       M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  1592.     { "lizard", S_LIZARD, 5, 6, 6, 10, 0, (G_GENO | 5),
  1593.       { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1594.       1, 40, 0, MS_SILENT, MZ_TINY, M1_ANIMAL | M1_NOHANDS | M1_STON_RES,
  1595.       M2_HOSTILE | M2_CARNIVORE, C(GREEN) },
  1596.     { "chameleon", S_LIZARD, 6, 5, 6, 10, 0, (G_GENO | 2),
  1597.       { { AT_BITE, AD_PHYS, 4, 2 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1598.       10, 100, 0, MS_SILENT, MZ_TINY, M1_ANIMAL | M1_NOHANDS | M1_NOPOLY,
  1599.       M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
  1600.     { "crocodile", S_LIZARD, 6, 9, 5, 0, 0, (G_GENO | 1),
  1601.       { { AT_BITE, AD_PHYS, 4, 2 }, { AT_CLAW, AD_PHYS, 1, 12 }, NO_ATTK,
  1602.       NO_ATTK, NO_ATTK }, 45, 400, 0, MS_SILENT, MZ_LARGE,
  1603.       M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS | M1_SWIM,
  1604.       M2_STRONG | M2_HOSTILE | M2_CARNIVORE | M2_EGGS, C(BROWN) },
  1605.  
  1606. /*    character classes */
  1607.     { "archeologist", S_HUMAN, 1, 10, 10, 1, 3, G_NOGEN,
  1608.       { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1609.       45, 400, 0, MS_HUMANOID, MZ_HUMAN,
  1610.       M1_NOPOLY | M1_HUMANOID | M1_COLLECT | M1_TUNNEL | M1_NEEDPICK,
  1611.       M2_HUMAN | M2_STRONG, C(HI_DOMESTIC) },
  1612.     { "barbarian", S_HUMAN, 1, 10, 10, 1, -3, G_NOGEN,
  1613.       { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1614.       45, 400, 0, MS_HUMANOID, MZ_HUMAN,
  1615.       M1_NOPOLY | M1_HUMANOID | M1_COLLECT | M1_POIS_RES,
  1616.       M2_HUMAN | M2_STRONG, C(HI_DOMESTIC) },
  1617.     { "caveman", S_HUMAN, 1, 10, 10, 0, 1, G_NOGEN,
  1618.       { {AT_WEAP, AD_PHYS, 2, 4}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1619.       45, 400, 0, MS_HUMANOID, MZ_HUMAN,
  1620.       M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
  1621.       M2_HUMAN | M2_STRONG | M2_CARNIVORE, C(RED) },
  1622.     { "cavewoman", S_HUMAN, 1, 10, 10, 0, 1, G_NOGEN,
  1623.       { {AT_WEAP, AD_PHYS, 2, 4}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1624.       45, 400, 0, MS_HUMANOID, MZ_HUMAN,
  1625.       M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
  1626.       M2_HUMAN | M2_STRONG | M2_CARNIVORE | M2_FEM, C(HI_DOMESTIC) },
  1627.     /* Note: players who are elves still get normal carrying capacity,
  1628.      * even though this is strictly speaking inconsistent.
  1629.      */
  1630.     { "elf", S_HUMAN, 1, 12, 10, 2, 3, G_NOGEN,
  1631.       { {AT_WEAP, AD_PHYS, 1, 8}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1632.       35, 350, 0, MS_HUMANOID, MZ_HUMAN,
  1633.       M1_NOPOLY | M1_HUMANOID | M1_COLLECT | M1_SLEE_RES | M1_SEE_INVIS,
  1634.       M2_ELF | M2_STRONG, C(HI_DOMESTIC) },
  1635.     { "healer", S_HUMAN, 1, 10, 10, 1, 3, G_NOGEN,
  1636.       { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1637.       45, 400, 0, MS_HUMANOID, MZ_HUMAN,
  1638.       M1_NOPOLY | M1_HUMANOID | M1_COLLECT | M1_POIS_RES,
  1639.       M2_HUMAN | M2_STRONG, C(HI_DOMESTIC) },
  1640.     { "knight", S_HUMAN, 1, 10, 10, 1, 3, G_NOGEN,
  1641.       { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1642.       45, 400, 0, MS_HUMANOID, MZ_HUMAN,
  1643.       M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
  1644.       M2_HUMAN | M2_STRONG, C(HI_DOMESTIC) },
  1645.     { "priest", S_HUMAN, 1, 10, 10, 2, 0, G_NOGEN,
  1646.       { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1647.       45, 400, 0, MS_HUMANOID, MZ_HUMAN,
  1648.       M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
  1649.       M2_HUMAN | M2_STRONG, C(HI_DOMESTIC) },
  1650.     { "priestess", S_HUMAN, 1, 10, 10, 2, 0, G_NOGEN,
  1651.       { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1652.       45, 400, 0, MS_HUMANOID, MZ_HUMAN,
  1653.       M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
  1654.       M2_HUMAN | M2_STRONG | M2_FEM, C(HI_DOMESTIC) },
  1655.     { "rogue", S_HUMAN, 1, 10, 10, 1, -3, G_NOGEN,
  1656.       { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1657.       45, 400, 0, MS_HUMANOID, MZ_HUMAN,
  1658.       M1_NOPOLY | M1_HUMANOID | M1_COLLECT | M1_GREEDY,
  1659.       M2_HUMAN | M2_STRONG, C(HI_DOMESTIC) },
  1660.     { "samurai", S_HUMAN, 1, 10, 10, 1, 3, G_NOGEN,
  1661.       { {AT_WEAP, AD_PHYS, 1, 8}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1662.       45, 400, 0, MS_HUMANOID, MZ_HUMAN,
  1663.       M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
  1664.       M2_HUMAN | M2_STRONG, C(HI_DOMESTIC) },
  1665.     { "tourist", S_HUMAN, 1, 10, 10, 1, 0, G_NOGEN,
  1666.       { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1667.       45, 400, 0, MS_HUMANOID, MZ_HUMAN,
  1668.       M1_NOPOLY | M1_HUMANOID | M1_COLLECT,
  1669.       M2_HUMAN | M2_STRONG, C(HI_DOMESTIC) },
  1670.     { "valkyrie", S_HUMAN, 1, 10, 10, 1, -1, G_NOGEN,
  1671.       { {AT_WEAP, AD_PHYS, 1, 8}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1672.       45, 400, 0, MS_HUMANOID, MZ_HUMAN,
  1673.       M1_NOPOLY | M1_HUMANOID | M1_COLLECT | M1_COLD_RES,
  1674.       M2_HUMAN | M2_STRONG | M2_FEM, C(HI_DOMESTIC) },
  1675.     { "wizard", S_HUMAN, 1, 10, 10, 3, 0, G_NOGEN,
  1676.       { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1677.       45, 400, 0, MS_HUMANOID, MZ_HUMAN,
  1678.       M1_NOPOLY | M1_HUMANOID | M1_COLLECT | M1_MAGIC,
  1679.       M2_HUMAN | M2_STRONG, C(HI_DOMESTIC) },
  1680.  
  1681. /*    ARRAY TERMINATOR    */
  1682.     { "", 0, 0, 0, 0, 0, 0, 0,
  1683.       { NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1684.       0, 0, 0, 0, 0, 0, 0, C(0) }
  1685. };
  1686. #endif /* !SPLITMON_1 */
  1687. #endif /* !MAKEDEFS_C */
  1688.